есть код загрузки файлов: | Код | <html> <head> <title>Ajax File Uploader by SpirITzzz</title> <LINK href=../style/style.css type=text/css rel=STYLESHEET> <script type="text/javascript" src="js/jquery-1.3.1.min.js"></script> <script type="text/javascript" src="js/jquery.MultiFile.js"></script> <script type="text/javascript" src="js/jquery.form.js"></script> <script type="text/javascript" src="js/jquery.blockUI.js"></script> <script type="text/javascript"> $(document).ready(function(){ $('.MultiFile').MultiFile({ accept:'jpg|gif|bmp|png|rar', max:15, STRING: { remove:'Удалить', file:'$file', selected:'Выбраны: $file', denied:'Неверный тип файла: $ext!', duplicate:'Этот файл уже выбран:\n$file!' } }); $("#loading").ajaxStart(function(){ $(this).show(); }) .ajaxComplete(function(){ $(this).hide(); });
$('#uploadForm').ajaxForm({ beforeSubmit: function(a,f,o) { o.dataType = "html"; $('#uploadOutput').html('Submitting...'); }, success: function(data) { var $out = $('#uploadOutput'); $out.html('Form success handler received: <strong>' + typeof data + '</strong>'); if (typeof data == 'object' && data.nodeType) data = elementToString(data.documentElement, true); else if (typeof data == 'object') data = objToString(data); $out.append('<div><pre>'+ data +'</pre></div>'); $('.MultiFile').val(); } }); }); </script> </head>
<body> <form id="uploadForm" action="doajaxfileupload.php" method="post" enctype="multipart/form-data"> <input name="MAX_FILE_SIZE" type="hidden"/> File: <input name="fileToUpload[]" id="fileToUpload" class="MultiFile" type="file"/> <br /> Mess: <input type=text name=txt /> <input value="Submit" type="submit"/> </form> <img id="loading" src="loading.gif" style="display:none;"/> <div id="uploadOutput"></div> </body> </html>
|
код обработчик: | Код | <?php include "conf.php"; $msg = ""; $fileElementName = 'fileToUpload'; $i = 0; $files_count = sizeof($_FILES[$fileElementName]["name"]);
for ($i = 0; $i < $files_count-1; $i++) { if(!empty($_FILES[$fileElementName]['error'][$i])) { switch($_FILES[$fileElementName]['error'][$i]) {
case '1': $msg = 'размер загруженного файла превышает размер установленный параметром upload_max_filesize в php.ini '; break; case '2': $msg = 'размер загруженного файла превышает размер установленный параметром MAX_FILE_SIZE в HTML форме. '; break; case '3': $msg = 'загружена только часть файла '; break; case '4': $msg = 'файл не был загружен (Пользователь в форме указал неверный путь к файлу). '; break; case '6': $msg = 'неверная временная дирректория'; break; case '7': $msg = 'ошибка записи файла на диск'; break; case '8': $msg = 'загрузка файла прервана'; break; case '999': default: $msg = 'No error code avaiable'; } } elseif(empty($_FILES[$fileElementName]['name']) ) { $msg = 'No file was uploaded..'; }else { if (file_exists("../mini/gallery/" . $_FILES[$fileElementName]['name'][$i])){ $msg = "<font color=#FFFFFF>Файл ".$_FILES[$fileElementName]['name'][$i] . " </font><font color=#FF0000>уже существует.</font> "; } else{ $msg = "<font color=#0f6c00>Файл ".$_FILES[$fileElementName]['name'][$i]." </font>загружен. Посмотреть можно <a href=../mini/gallery/".$_FILES[$fileElementName]['name'][$i]." target=_blank> >> тут << </a><br />"; move_uploaded_file($_FILES[$fileElementName]['tmp_name'][$i], "../mini/gallery/" . $_FILES[$fileElementName]['name'][$i]); mysql_query("INSERT INTO qwerty VALUE(0, '".$_FILES[$fileElementName]["name"][$i]."', '".$_POST['txt']."') ") or die ("ERROR"); } //for security reason, we force to remove all uploaded file @unlink($_FILES[$fileElementName][$i]); } echo "Внимание: ".$msg."\n"; } ?>
|
если поле <input type=file> оставить пустым, то появляется белый экран с рекомендацией апача, (как вкл/выкл отображения ошибок).. и больше ничего, при просмотре кода страницы, в коде все выводится (т.е. то, что доложен видеть пользователь)... некорректно срабатывает эта часть: | Код | elseif(empty($_FILES[$fileElementName]['name']) ) { $msg = 'No file was uploaded..'; }
|
Это сообщение отредактировал(а) Shark - 11.11.2011, 13:24
|