2016-05-09 3 views
-2

Я новичок в PHP, и я хочу проверить файл до его загрузки в PhpMyAdmin. Единственные типы файлов, которые я хочу добавить в мою базу данных, - это PDF, DOC и DOCX. Я проверил в Интернете решение, но я действительно не могу найти его. Надеюсь, вы, ребята, можете мне помочь.Как проверить, какой файл загружен

<?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

и вы чувствуете, что форма HTML опущены от вопроса неактуальной? проверьте на наличие ошибок, вы этого не делаете. –

+0

Возможный дубликат [php check file extension in upload form] (http://stackoverflow.com/questions/10456113/php-check-file-extension-in-upload-form) – olibiaz

ответ

0

Вы можете использовать is_uploaded_file():

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

Из документов: Возвращает TRUE, если файл с именем:

файла был загружен через HTTP POST. Это полезно, чтобы помочь обеспечить , что злоумышленник не пытался обмануть скрипт в работе над файлами , на которых он не должен работать - например,/etc/passwd.

Этот вид проверки особенно важен, если есть вероятность, что все, что было сделано с загруженными файлами, может показать их содержимое пользователю или даже другим пользователям в той же системе. EDIT: Я использую этот в моем классе FileUpload, в случае, если это помогает:

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; 
} 
Смежные вопросы