Есть небольшая форма, один из элементов которой файловый селектор:
<form id="upload_form"
action="/upload/image/<?php echo $article_id; ?>"
method="post" enctype='multipart/form-data'>
<select name="type" class="upload">
<option value="image_text">For text</option>
<option value="image_preview">For preview</option>
</select>
<input name="image" type="file" class="upload">
<input name="ok_image"
type="submit" class="upload" value="Upload">
</form>
<div id="image_container">
<?php if (count($images) > 0) : ?>
<?php foreach($images as $image) : ?>
<div class="upload_image_container">
<img src="<?php echo $upload_path.$image->filename; ?>" class="upload_image">
<img src="/media/images/icons/delete.png" class="upload_delete">
</div>
<?php endforeach ?>
<?php endif ?>
</div>
<img src="/media/images/animation/loading.gif" id="loader" alt="loading" align="middle"/>
Есть js скрипт который должен:
1). Запретить переход/перезагрузку страницы после сабмита.
2). Асинхронным способом переслать данные PHP (поле type).
3). Каким то образом передать данные о файле загрузчику в PHP файле.
4). Получить ответ от сервера и вставить его в див "image_container".
Пока код такой:
$(document).ready(function () {
var form = $('#upload_form');
$.ajaxSetup({
url:form.attr('action'),
type:'post',
data:form.serializeArray(),
dataType:'html',
success:function (data, textStatus, xhr) {
$('#image_container').html(data);
log('Success AJAX!');
},
beforeSend:function (xhr) {
$('#refresh').attr('class', 'disabled');
$('#image_container').hide();
$('#loader').show();
},
complete:function (xhr, textStatus) {
$('#loader').hide();
$('#image_container').show();
$('#refresh').removeAttr('class');
}
});
form.submit(function (evtObj) {
evtObj.preventDefault();
$.ajax({});
});
});
Код справляется со всеми задачами, кроме 3. Массив $_FILES в PHP файле оказывается пустой. Подскажите в чем моя ошибка и как правильно сделать.
П.С. В инете полно jQuery плагинов для загрузки файлов, но нигде не написано как это делать.
Спустя 11 часов, 39 минут, 41 секунда (28.02.2012 - 05:32) Игорь_Vasinsky написал(а):
да вот говорят что аякс файлы не качает...
Спустя 9 часов, 58 минут, 35 секунд (28.02.2012 - 15:30) gidrosoldat написал(а):
Ок, а как работают вот такой скрипт?
http://www.phpletter.com/Demo/AjaxFileUpload-Demo/
Видимо способы есть, раз существуют такие вот плагины. Пробую теперь разобраться, но поскольку опыта в js мало, понимается с трудом.
http://www.phpletter.com/Demo/AjaxFileUpload-Demo/
Видимо способы есть, раз существуют такие вот плагины. Пробую теперь разобраться, но поскольку опыта в js мало, понимается с трудом.
Спустя 23 минуты, 20 секунд (28.02.2012 - 15:54) Winston написал(а):
Спустя 27 минут, 50 секунд (28.02.2012 - 16:22) gidrosoldat написал(а):
Winston, и?
Я не спрашиваю где скачать такой скрипт. Я спрашиваю, как исправить мой, чтобы он работал. Как асинхронно передать файл из формы в php загрузчик?
Я не спрашиваю где скачать такой скрипт. Я спрашиваю, как исправить мой, чтобы он работал. Как асинхронно передать файл из формы в php загрузчик?