У меня проблема с моей php fileupload, которую я использую через ajax в jquery.
Это мой код в файле загрузки php:
if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; } else { move_uploaded_file($_FILES["file"]["tmp_name"],"termine.csv"); echo "Stored in: " . $_FILES["file"]["name"]; }
Это моя инструкция jquery ajax:
$('#upload_csv').click( function() { $.ajax({ url: '/playground/php/updatedates.php', type: 'POST', data: $('form#csv').serialize(), }).done(function(txt) { if(txt!='')alert(txt); }); });
и это моя форма в файле index.php:
<form enctype="multipart/form-data" id="csv" method="POST"> <div style="float:left"> <input name="file" type="file" id="file" size="100"> <br/> <input type="submit" id="upload_csv" value="upload csv file"> </div> </form>
Единственное сообщение об ошибке, которое я получаю, это «ошибка» и ничего больше.
Надеюсь, кто-то может помочь.
$().serialize
всегда создает строку с url-encoded
и игнорирует ввод файла. Вы должны использовать другой подход. См. http://api.jquery.com/serialize/
Один из вариантов – поместить форму в скрытый iframe
и вызвать событие отправки.
Также ознакомьтесь с плагином загрузки файла jQuery: http://blueimp.github.com/jQuery-File-Upload/