Кто-нибудь знает, как отправить это через ajax?
Это pandauploader pandastream. За исключением того, что я хочу, чтобы он был отправлен через AJAX. Кто-нибудь знает, как я мог бы преобразовать это?
:javascript
$("#returned_video_id").pandaUploader(#{Panda.signed_params('post', "/videos.json", :profiles => 'f1eb0fe2406d3fa3530eb7324f410789').to_json}, {
onsuccess: function(){
$(".opened_photo").fadeTo(200, 0, function() {
$(".opened_photo").hide();
$(".media_lib").fadeIn();
});
},
upload_progress_id: "upload_progress",
allowed_extensions: ['AAC', 'AVI', '3GP', 'FLV', 'MOV', 'MP3', 'MP4', 'MPEG', 'OGG', 'WAV', 'WEBM', 'WMA', 'WMV',
'aac', 'avi', '3gp', 'flv', 'mov', 'mp3', 'mp4', 'mpeg', 'ogg', 'wav', 'webm', 'wma', 'wmv']
});
1 ответ
multipart/form-data
загрузка файлов не может быть отправлена через XMLHttpRequest. Это связано с тем, что тело запроса всегда отправляется в виде строки, закодированной как UTF-8. Вы не можете отправить сырой двоичный файл.
Если вы пишете пользовательский получатель загрузки, ожидающий его, вы можете кодировать содержимое файла внутри текста, используя схему, подобную base-64. Но это сделает загрузку больше (и, следовательно, медленнее), и в любом случае вы можете читать файлы из JavaScript только в тех браузерах, которые поддерживают новый File API.
Я не знаю о 'pandastream', но выгрузка HTML-файла без перезагрузки страницы обычно осуществляется путем отправки формы с target
указал на <iframe>
, по этой причине.
(Кстати, allowed_extensions
не очень хорошая идея. Помимо отсутствующих возможностей регистра и других отсутствующих возможных расширений, на платформах, отличных от Windows, тип файла может не иметь ничего общего с расширением.)