2015-08-03 3 views
0

Привет, мне просто интересно, может ли кто-нибудь сказать мне, что я делаю неправильно. Я пытаюсь загрузить некоторые файлы с помощью dropzone и вставить запись этого файла в мою базу данных.
Это приложение для моего приложения: http: /stormix.co/projects/megadrop/index
Я могу легко загрузить файлы и добавить запись этих файлов в свою базу данных, используя обычный ввод файлов (u можете проверить это в ссылке I дал u).
Но когда я пытаюсь сделать это с DropZone он просто не может
Это то, что я использую, чтобы обработать мой запрос Dropzone:Проблемы с PHP, Mysqli и Dropzone

//Upload file 
if (!empty($_FILES)) {  
/* Define variables */ 
$file = $_FILES['file']; 
//Get Directory Separator : usually it's "/" 
$ds = DIRECTORY_SEPARATOR; 
//Select the upload directory : this is where files will go :) 
$storeFolder = '..'. $ds.'drop'; 
//Convert the file size to byte 
$max_size = 10 *1024 *1024; 
//Get File name 
$filename = $file['name']; 
$tempfile = $file['tmp_name'];  
//Define the upload/target directory 
$targetpath = dirname(__FILE__) . $ds. $storeFolder . $ds; 
//Define new target 
$targetfile = $targetpath.time()."_".$file['name']; 
//Check if $_FILES variable is now empty 
if (!empty($_FILES)) { 
//Check if file type is allowed 
    if($allowed_files == "All" OR in_array($file['type'],$allowed_files) OR in_array("All",$allowed_files)){ 
    //Check if any error occurred 
    if($file['error'] == "0"){ 
    //Check if file is smaller than file size 
    if($file['size'] <= $max_size){ 
    //Check if file is uploaded 
    if(move_uploaded_file($tempfile,$targetfile)){ 
    /*------------------------------------------------------------------------------------------------------------ */ 
    //Mysql commands 
    $filename = $mysqli->real_escape_string($file['name']) ; 
    $count = substr_count($filename, '.'); 
    $ext = explode('.',$filename); 
    $type = $mysqli->real_escape_string(strtoupper($ext[$count])." File"); 
    $uploader =$mysqli->real_escape_string($_SESSION['user']); 
    $key = substr(md5(rand(0,99999999)),0,8); 
    $timestamp = time(); 
    $date = date('Y-m-d H:i:s'); 
    $size = bytesToSize($file['size']); 
    $targetfile = $mysqli->real_escape_string($targetfile); 
    if ($mysqli->query("INSERT INTO files VALUES ('','".$filename."','". $type ."','Uploaded','".$uploader."','".$key."','". $size."','0','0','".$timestamp."','".$date."','".$targetfile."')")) { 
    return true; 
    }else{ 
    echo 'An error occurred while inserting file into database !<br>Error : <b>[' . $mysqli->error . ']</b>'; 
    return false; 
    unlink($targetfile); 
    } 
    /* ------------------------------------------------------------------------------------------------------------ */ 
    }else{echo "An error occurred while uploading."; return false;} 
    }else{echo "File is too big !</b>"; return false;} 
    }else{echo "An error occurred while uploading. <br>Error Code :".$file['error'] .""; return false;} 
    }else{echo "Invalid File Type"; return false;} 
}else{echo "No files were selected"; return false;} 

}else{header("location: index");} 

Я сохраняю файлы на директории под названием: DROP
файл макс размер 10MB
Это первый раз, когда я что-то спрашиваю, поэтому извините, если что-то не хватает; просто скажи мне, и я добавлю его
И Кроме того, я хотел бы знать, как вернуть ошибки из PHP в DropZone, потому что я не знаю, как :(

+0

Привет! пожалуйста, проверьте консоль разработчика браузера на наличие ошибок :) – Richard87

+0

Нет ошибок, и вы можете попробовать это по ссылке, которую я дал – Stormix

ответ

1

Мой код содержит много ошибок:
- $ allowed_files было определено: он у меня установлен на ALL, как в моем файле конфигурации
- $ TargetPath был uncorrect, поэтому у меня было фиксированное
я использовал:
header('Content-type: text/plain');
exit("My error");
для отображения ошибок, теперь все фиксированы : D

Новый код: http://pastebin.com/CSjn7UPC

Смежные вопросы