Есть код который загружает на сервер один файл с прогрессбаром. Нужно добавить еще и картинку. Код (Javascript): <html> <head> <script> function _(el){ return document.getElementById(el); } function uploadFile(){ var file = _("file1").files[0]; var formdata = new FormData(); formdata.append("file1", file); var ajax = new XMLHttpRequest(); ajax.upload.addEventListener("progress", progressHandler, false); ajax.addEventListener("load", completeHandler, false); ajax.addEventListener("error", errorHandler, false); ajax.addEventListener("abort", abortHandler, false); ajax.open("POST", "file_upload_parser.php"); ajax.send(formdata); } function progressHandler(event){ _("loaded_n_total").innerHTML = "Uploaded "+event.loaded+" bytes of "+event.total; var percent = (event.loaded / event.total) * 100; _("progressBar").value = Math.round(percent); _("status").innerHTML = Math.round(percent)+"% upload... please wait"; } function completeHandler(event){ _("status").innerHTML = event.target.responseText; _("progressBar").value = 0; } function errorHandler(event){ _("status").innerHTML = "Upload Failed"; } function abortHandler(event){ _("status").innerHTML = "Upload Aborted"; } </script> </head> <body> <form id="./" method="post" enctype="multipart/form-data"> <input type="file" name="file1" id="file1"><br> <input type="file" name="jpg" id="jpg"> <input type="button" value="Upload File" onClick="uploadFile()"><br> <progress id="progressBar" value="0" max="100" style="width:300px;"></progress> <h3 id="status"></h3> <p id="loaded_n_total"></p> </form> </body> </html>
Есть еще и сам файл загрузки на сервер "file_upload_parser.php" PHP: <?php $fileName = $_FILES["file1"]["name"]; $fileTmpLoc = $_FILES["file1"]["tmp_name"]; $fileType = $_FILES["file1"]["type"]; $fileSize = $_FILES["file1"]["size"]; $fileErrorMsg = $_FILES["file1"]["error"]; if (!$fileTmpLoc) { echo "ERROR"; exit(); } if(move_uploaded_file($fileTmpLoc, "111/$fileName")){ echo "$fileName ok"; } else {echo "move_uploaded_file function failed";} ?> и мне нужно помимо этого файла что бы загружалась бы картинка из поля <input type="file" name="jpg" id="jpg"> и в другую папку.
@leshiy тебе подсказать как правильно и что можно улучшить в коде или и так сойдёт? Плохой вариант это просто продублировать твой код ещё раз изменив file1 на jpg в php коде там где $_FILES
Лучше конечно улучшить. А что касается просто продублировать не пойдет там же передается информация о файле через js.
должно сработать, ты же имя поменяешь mysql старая функция, надо MySQLi или PDO использовать. это лишние действия, ещё может вызвать предупреждения, notice, что не должно https://secure.php.net/manual/ru/features.file-upload.post-method.php https://secure.php.net/manual/ru/features.file-upload.errors.php можно было проверить $_FILES["file1"]["error"] например так if( isset( $_FILES["file1"] ) && $_FILES["file1"]["error"] == UPLOAD_ERR_OK ) сделаешь два разных условия isset( $_FILES["file1"] ) и isset( $_FILES["jpg"] ) для одного в одну папку, для другого в другую
Дело все в том что тут используется js для отображения прогрессбара, а я в нем ничего не понимаю.По моему дело где тут Код (Javascript): function uploadFile(){ var file = _("file1").files[0]; var formdata = new FormData(); formdata.append("file1", file); и загрузчику в файл "file_upload_parser.php" передается только один файл "file1" а мне нужно передать еще и второй. А без js просто в php это я и сам сделал бы.
@leshiy, да, передается только один файл, потому что крепится только один. Попробуй использовать цикл в функуии uploadFile() --- Добавлено --- И еще, после редактирования клиентского кода, надо редактировать код обработчика сервера. Вот в докуменатции можно почитать, какие изменения нужно будет внести в код.
А ты не мог бы показать как? --- Добавлено --- Да пробовал я и целиком js дублировать с измененным именем файла и частями не выходит.