У меня есть простая форма с полем Uploadify , позволяющая загружать несколько изображений. Однако, кажется, что он ничего не делает, когда я выбираю свои файлы (и они добавляются в очередь), и я не получаю вывод в консоли.
Вот мой HTML:
<script>
$(function() {
$('#file_upload').uploadify({
uploader: '/cms/tpl/swf/uploadify.swf',
script: '/cms/inc/upload_image.php?album=39',
cancelImg: '/cms/tpl/img/cross.gif',
folder: '/tpl/uploads',
multi: true,
auto: true,
fileExt: '*.jpg;*.gif;*.png',
fileDesc: 'Image files (.jpg, .gif, .png)',
queueID: 'file_queue',
queueSizeLimit: 10,
simUploadLimit: 10,
sizeLimit: 1048576,
removeCompleted: false,
scriptData: {
'album': '39',
'session': 'aeac944c4e911edc5e5de10c98b8e5b7'
},
onError: function(a,b,c,d) {
console.log(a);
console.log(b);
console.log(c);
console.log(d);
},
onSelectOnce: function(event,data) {
$('#status_message').text(data.filesSelected + ' files have been added to the queue.');
},
onComplete: function(a,b,c,d,e) {
if (d !== '1') {
alert(d);
}
else {
alert('Filename: ' + c.name + ' was uploaded');
}
},
onAllComplete: function(event, data) {
$('#status_message').text(data.filesUploaded + ' files uploaded; ' + data.errors + ' errors.');
}
});
});
</script>
А вот серверный скрипт (PHP), который я использую для обработки загрузки файлов:
<?php
/**
* @todo Validation!
*/
if (isset($_POST) && isset($_FILES['Filedata'])) {
$upload_dir = '../../tpl/uploads/';
$source = $_FILES['Filedata']['tmp_name'];
$filename = sprintf('%s.%s', uniqid(), $mime[$_FILES['Filedata']['type'][$name.'_upload']]);
$destination = $this->uploads_dir.$filename;
require '../../inc/database.php';
require '../../inc/globals.php';
if (move_uploaded_file($source, $destination)) {
try {
$sql = "INSERT INTO gallery_images (album, image) VALUES (?,?)";
$smt = $pdo->prepare($sql);
$res = $smt->execute(array($_REQUEST['album'], $filename));
}
catch (PDOException $e) {
// send error message
}
}
switch ($_FILES['Filedata']['error']) {
case 0:
// $msg = 'File successfully uploaded';
break;
case 1:
case 2:
$msg = 'File size exceeds limit';
break;
case 3:
$msg = 'The file was only partially uploaded';
break;
case 4:
$msg = 'No file was specified';
break;
case 6:
$msg = 'The temporary folder could not be found';
break;
case 7:
$msg = 'Failed to write the file to disk';
break;
case 8:
$msg = 'File upload stopped by extension';
break;
default:
$msg = 'Unknown error';
break;
}
if ($msg) {
$stringData = "Error: ".$_FILES['userfile']['error']." Error Info: ".$msg;
}
else {
$stringData = "1"; // This is required for onComplete to fire on Mac OSX
}
echo $stringData;
}
Очень элементарно, но делает свою работу. Я делаю что-то неправильно? Я что-то пропустил? Выше было собрано после просмотра демонстрационной страницы Uploadify.