[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Асинхроная загрузка файла с jQuery
gidrosoldat
Доброе время суток )
Есть небольшая форма, один из элементов которой файловый селектор:
<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 мало, понимается с трудом.

Спустя 23 минуты, 20 секунд (28.02.2012 - 15:54) Winston написал(а):

Спустя 27 минут, 50 секунд (28.02.2012 - 16:22) gidrosoldat написал(а):
Winston, и?
Я не спрашиваю где скачать такой скрипт. Я спрашиваю, как исправить мой, чтобы он работал. Как асинхронно передать файл из формы в php загрузчик?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.