Я получил ошибку при попытке загрузить файл .zip на свой сервер с помощью библиотеки uploadify.
В моем uploadify.php:
$fileTypes = array('jpg','jpeg','gif','png','JPG','JPEG','GIF','PNG','doc','docx','xls','xlsx','ppt','pptx','pdf','txt','zip','rar','DOC','DOCX','XLS','XLSX','PDF','PPT','PPTX','TXT','ZIP','RAR','csv','csvx','CSV','CSVX'); // File extensions
Разрешение на папку назначения 777
Мой скрипт хорошо работает со всеми другими расширениями, только ZIP-файл, который не может быть завершен. Анимация jquery показывает, что полоса загрузки достигает 100%, но затем загорается красным и показывает мою ошибку.
testtest.zip (118KB) - HTTP Error (403)
В моей консоли я получил эту ошибку:
Failed to load resource: the server responded with a status of 403 (Forbidden)
С .rar это делает то же самое, поэтому я думаю, что у архивных файлов возникла проблема, или мне нужно сделать что-то еще.
полный файл php:
$targetFolder = '/upload'; // Relative to the root
$uniqid = uniqid();
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
// Validate the file type
$fileTypes = array('jpg','jpeg','gif','png','JPG','JPEG','GIF','PNG','doc','docx','xls','xlsx','ppt','pptx','pdf','txt','zip','rar','DOC','DOCX','XLS','XLSX','PDF','PPT','PPTX','TXT','ZIP','RAR','csv','csvx','CSV','CSVX'); // File extensions
$fileParts = pathinfo($_FILES['Filedata']['name']);
$targetFile = rtrim($targetPath,'/') . '/' . $uniqid.'.'.$fileParts['extension'];
if (in_array($fileParts['extension'],$fileTypes)) {
move_uploaded_file($tempFile,$targetFile);
echo $uniqid.'.'.$fileParts['extension'];
} else {
echo 2;
}
}
И полный файл JS:
$("#fileupload").uploadify({
'fileObjName' :'Filedata',
'auto' : true,
height : 30,
swf : 'uploadify/uploadify.swf',
uploader : 'uploadify/uploadify.php',
width : 120,
'onUploadSuccess' :function(file, data, response){
if(data == '2'){alert("fail");}
else{alert("ok");}
}
});
Задача ещё не решена.
Других решений пока нет …