Дополнительно
jQuery Ajax Загрузка файлов
Могу ли я использовать следующий код jQuery для выполнения загрузки файла с помощью метода POST в ajax-запросе?
$.ajax({
type: "POST",
timeout: 50000,
url: url,
data: dataString,
success: function (data) {
alert('success');
return false;
}
});
Если это возможно, то нужно ли заполнять часть data
? Правильный ли это способ? Я только передаю файл на сторону сервера.
Я гуглил вокруг, но то, что я нашел, было плагином, в то время как в моем плане я не хочу использовать его. По крайней мере, на данный момент.
715
20
Загрузка файла не возможна через ajax. Вы можете загрузить файл, не обновляя страницу, используя IFrame. Более подробную информацию вы можете посмотреть здесь
UPDATE:
В XHR2 поддерживается загрузка файлов через AJAX. Например, через объект FormData, но, к сожалению, это поддерживается не всеми/старыми браузерами.
Поддержка FormData начинается со следующих версий браузеров для настольных компьютеров. IE 10+, Firefox 4.0+, Chrome 7+, Safari 5+, Opera 12+
Более подробную информацию смотрите в MDN link.
Фреймы больше не требуется для передачи файлов через AJAX. Я'вэ недавно сделал это сам. Проверьте эти страницы:
https://stackoverflow.com/questions/4006520/using-html5-file-uploads-with-ajax-and-jquery
http://dev.w3.org/2006/webapi/FileAPI/#FileReader-interface
Обновлен ответ и чистить его. Использовать функции getsize проверять размер или использовать функцию gettype для проверки типов. Добавлен прогрессбар HTML и CSS код.
Как использовать класс загрузить
HTML код прогрессбар
Код CSS прогрессбар
Аякс пост и загрузить файл можно. Я'м с помощью jQuery с $.функция AJAX`, чтобы загрузить мои файлы. Я пытался использовать объект XHR, но не может получить результатов на стороне сервера с помощью PHP.
Как вы можете видеть, вы должны создать объект FormData, пустой или (по частям? -
$('#yourForm').сериализовать())
существующую форму, а затем прикрепить исходный файл.Здесь больше информации:
Для процесса PHP вы можете использовать что-то вроде этого:
Простая Форма Загрузки
в
в
Я'м довольно поздно для этого, но я искал на основе AJAX подгрузка изображения решение и ответ, который я искал, было немного, разбросанных по всему этот пост. Решение я остановился на участвующих объект FormData. Я собрал основную форму код, который я поставил вместе. Вы можете увидеть это показано, как добавить пользовательское поле в форме с ФД.функции append (), а также как обрабатывать данные, когда AJAX-запрос выполняется.
Загрузка HTML:
В случае, если вы работаете с PHP здесь'ы способ обработки загрузки, что включает в себя использование обоих полей продемонстрировали в приведенном выше HTML-код.
Upload.php
Загрузка AJAX действительно возможна с помощью XMLHttpRequest(). Нет необходимости в использовании iframe. Прогресс загрузки может быть показан.
Подробности см: Ответ https://stackoverflow.com/a/4943774/873282 на вопрос https://stackoverflow.com/questions/4856917/jquery-upload-progress-and-ajax-file-upload.
Здесь's, как я получил эту работу:
В формате HTML
Яш
РНР
В случае, если вы хотите сделать это так:
чем
https://github.com/lgersman/jquery.orangevolt-ampere/blob/master/src/jquery.upload.js
может быть ваше решение.
Более подробная информация в моем блоге: http://blog.manki.in/2011/08/ajax-fie-upload.html.
редактировать: обратите внимание, contentype и обработки данных Вы можете просто использовать это, чтобы загрузить файлы с помощью AJAX...... подать входной сигнал не может быть вне элемента формы :)
Обновление 2019:
HTML-код
Яш
Я реализовал несколько Файл выберите с мгновенным предварительным просмотром и загрузки после удаления ненужных файлов с просмотром через AJAX.
Подробную документацию можно найти здесь: http://anasthecoder.blogspot.ae/2014/12/multi-file-select-preview-without.html
Демо: http://jsfiddle.net/anas/6v8Kz/7/embedded/result/
jsFiddle: http://jsfiddle.net/anas/6v8Kz/7/
На JavaScript:
Я занимался этим в простой код. Вы можете скачать рабочую демку с ЗДЕСЬ
В вашем случае, это очень возможно. Я проведу вас шаг за шагом, как вы можете закачать файл на сервер с помощью AJAX и jQuery.
Сначала давайте'ы нам создать HTML-файл, чтобы добавить следующий файл формы элемента, как показано ниже.
Во-вторых, создать jquery.js файл и добавьте следующий код для обработки наши представления файла на сервер
Там вы сделали . Смотреть больше
С помощью FormData-это путь, как говорят многие ответы. вот немного кода, который прекрасно работает для этой цели. Я также согласен с комментарием вложенности Аякс блоки для выполнения сложных обстоятельствах. В том числе электронной.Метод preventDefault(); по моему опыту, делает код более кросс-браузер совместимый.
Да, вы можете просто использовать JavaScript, чтобы получить файл, убедившись, что Вы читаете файл как URL-адрес данных. Разобрать вещи, прежде чем base64, чтобы на самом деле получить подходит 64 закодированных данных, а затем, если вы используете PHP или действительно любой язык можно расшифровать базовая 64 данные и сохранить в файл, как показано ниже
Конечно, вы будете, вероятно, хотеть сделать некоторые проверки, такие как проверка, какой тип файла вы имеете дело с и все такое, но это идея.
Вы можете использовать метод ajaxSubmit как следовать :) когда вы выберите файл, который нужно загрузить на сервер, форма будет представлять сервер :)
чтобы загрузить файл, который представляется пользователю как часть формы с помощью jQuery, пожалуйста, следуйте ниже код :
Затем отправить данные формы объекта на сервер.
Мы также можем добавить файл или Blob непосредственно в объект FormData.
Если вы хотите загрузить файл с помощью AJAX-это код, который вы можете использовать для загрузки файлов.
Вот HTML для загрузки файла
Чтобы получить всю вашу форму ввода, в том числе тип=то"файл" Вы должны использовать объект FormData. вы сможете увидеть содержание в виде FormData отладчик -> В сети>заголовки после того, как вы заполните форму.