Загрузка файла AJAX с XMLHTTPRequest, который поддерживает, т.е. 9Jquery

Программирование на jquery
Ответить
Anonymous
 Загрузка файла AJAX с XMLHTTPRequest, который поддерживает, т.е. 9

Сообщение Anonymous »

Я пытаюсь загрузить файл с помощью AJAX. Приведенный ниже код отлично работает во всех браузерах, за исключением т.е. 9 и предыдущих версий. К сожалению, я вынужден поддерживать эти браузеры, поэтому мне интересно, как я могу изменить этот код, чтобы он был работал, т. Е. Несмотря на то, как это решает мою проблему. Что я мог бы на самом деле добраться до линии, куда она отправляет, но я не был уверен, какой должна быть эта линия. xhr.send (fileInput); Похоже, не сработал. < /p>

также попыталась использовать FormData, но также также Fould, что IE9 не поддерживает это. < /p>

Ваша помощь была бы очень оценена. < /p>


function uploadFile(fileInput, label1, label2, filename) {
var fileInput = document.getElementById(fileInput);

var xhr;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}

xhr.open('POST', 'Create/Upload');
xhr.setRequestHeader('Content-type', 'multipart/form-data');
//Appending file information in Http headers

//xhr.setRequestHeader('X-File-Name', filename);
xhr.setRequestHeader('X-File-Type', fileInput.files[0].name);
xhr.setRequestHeader('X-File-Type', fileInput.files[0].type);
xhr.setRequestHeader('X-File-Size', fileInput.files[0].size);
xhr.setRequestHeader('X-Type', label1);
//Sending file in XMLHttpRequest
xhr.send(fileInput.files[0]);

//xhr.send(fileInput);

xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
$('#' + label1).text(xhr.responseText.replace(/\"/g, ""));
document.getElementById(label1).style.color = "green";
document.getElementById(label2).style.display = 'none';
}
else {
$('#' + label1).text("File upload failed");
document.getElementById(label1).style.color = "red";
}
}
}
document.getElementById('uploaderAuto').onsubmit = function () {

myfile = $('#fileInputAuto').val();
var ext = myfile.split('.').pop();
ext = ext.toLowerCase();
if (ext == "pdf" || ext == "docx" || ext == "doc" || ext == "odf" || ext == "rtf") {
uploadFile('fileInputAuto', 'Auto', "AutoView", myfile);
} else {
alert("The following is a list of accepted file types:\n\n - Word Document (*.doc)\n - Word Document (*.docx)\n - Portable Document Format (*.pdf)\n - Open Document Format (*.odf)\n - Rich Text Format (*.rtf)\n\nPlease choose a file with one of these file types.");
}

return false;
}

document.getElementById('uploaderOther1').onsubmit = function () {
myfile = $('#fileInputOther1').val();
uploadFile('fileInputOther1', 'Other1', 'Other1View', myfile);
return false;
}

document.getElementById('uploaderOther2').onsubmit = function () {
myfile = $('#fileInputOther2').val();
uploadFile('fileInputOther2', 'Other2', 'Other2View', myfile);
return false;
}



Подробнее здесь: https://stackoverflow.com/questions/237 ... port-i-e-9
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»