Как загрузить файл с помощью AJAX

Posted on Суббота, Июнь 19th, 2010 at 12:47 пп

Никак… AJAX не предоставляет возможности загружать файлы на сервер. Однако, есть обходной путь, который с точки зрения пользователя будет оказывать тот же эффект что и AJAX – перезагрузки страницы не будет!

Итак, используем следующий код:

<script language="javascript"><!--
var is_file_uploaded = false;
function on_file_load() {
if ( ! is_file_uploaded ) {
is_file_uploaded = true;
return;
}
// этот код выполнится после полной загрузки файла
is_file_uploaded = false;
alert("Файл загружен!");
}
//-->
</script>
<!-- в этот iframe будет загружен результат работы php обработчика -->
<iframe style="display:none;" name="loader" onload="on_file_load()"></iframe>

Форма для отправки файла будет выглядеть следующим образом:

<form enctype="multipart/form-data" action="путь/к/вашему/php/обработчику/" method="post" target="loader">
<input type="file" name="myfile" /><input type="submit" value="Отправить файл" />
</form>

Таким образом, обработку возможных ошибок, произошедших в php скрипте на сервере можно выполнить получив код результата выполнения от php скрипта в iframe.

Остались вопросы? Задавайте =)

You can leave a response, or trackback from your own site.

Leave a Reply

CAPTCHA image