2016-05-09 13 views
-2

Ich bin neu in PHP und ich möchte die Datei überprüfen, bevor es auf PhpMyAdmin hochgeladen wird. Die einzigen Dateitypen, die ich meiner Datenbank hinzufügen möchte, sind PDF, DOC und DOCX. Ich habe im Internet nach der Lösung gesucht, aber ich kann wirklich keine finden. Ich hoffe, ihr könnt mir dabei helfen.Wie überprüft man, welche Datei hochgeladen wird

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "usbw"; 
$dbname = "persons"; 

// CREATE A CONNECTION WITH THE DATABASE 
// CONNECTIE MAKEN MET DATABASE 
$conn = new mysqli($servername, $username, $password, $dbname); 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 

// CHECK IF SUBMIT IS CLICKED 
// CONTROLEER OF SUBMIT IS GEKLIKT 
if(isset($_POST['submit'])) 
{ 
$filetmp = $_FILES["cv"]["tmp_name"]; 
$filename = $_FILES["cv"]["name"]; 
$filetype = $_FILES["cv"]["type"]; 
$filepath = "files/".$filename; 

move_uploaded_file($filetmp,$filepath); 


// INSERT VALUES IN THE DATABASE 
// VOEG WAARDES TOE IN DE DATABASE 
$sql = "INSERT INTO cv (cv_name,cv_path,cv_type) VALUES ('$filename','$filepath','$filetype')"; 
$result = mysqli_query($conn, $sql); 
} 
// INSERT cv_id IN person_id 
// VOEG cv_id TOE IN person_id 
$cv = $conn->insert_id; 
?> 
+3

und fühlen Sie sich, dass das HTML-Formular irrelevant aus der Frage weggelassen werden? Nach Fehlern suchen, das machst du nicht. –

+0

Mögliches Duplikat von [php Dateierweiterung im Upload-Formular prüfen] (http://stackoverflow.com/questions/10456113/php-check-file-extension-in-upload-form) – olibiaz

Antwort

0

Sie is_uploaded_file():

if(!file_exists($_FILES['myfile']['tmp_name']) || !is_uploaded_file($_FILES['myfile']['tmp_name'])) { 
    echo 'No upload'; 
} 

Aus der Dokumentation verwenden: Gibt TRUE zurück, wenn die von Datei mit dem Namen:

Dateinamen über HTTP POST hochgeladen wurde. Dies ist nützlich, um sicherzustellen, dass ein böswilliger Benutzer nicht versucht hat, das Skript dazu zu bringen, Dateien zu bearbeiten, auf denen es nicht funktionieren sollte - zum Beispiel/etc/passwd.

Diese Art der Überprüfung ist besonders wichtig, wenn die Möglichkeit besteht, dass alles, was mit hochgeladenen Dateien getan wurde, ihren Inhalt dem Benutzer oder sogar anderen Benutzern auf dem gleichen System offenbaren könnte. EDIT: Ich verwende diesen in meiner Klasse Fileupload, falls es hilft:

public function fileUploaded() 
{ 
    if(empty($_FILES)) { 
     return false;  
    } 
    $this->file = $_FILES[$this->formField]; 
    if(!file_exists($this->file['tmp_name']) || !is_uploaded_file($this->file['tmp_name'])){ 
     $this->errors['FileNotExists'] = true; 
     return false; 
    } 
    return true; 
} 
Verwandte Themen