[英]FormData of element not working - Internet Explorer 10
我使用jQuery.ajax
上傳文件,除了Internet Explorer 10之外,一切在Google Chrome,Mozilla Firefox,Opera等現代瀏覽器中都很完美。
new FormData($('.uploadForm')[0])
在IE10中不起作用,但如果我只嘗試使用這段代碼: new FormData($('.uploadForm'))
它可以工作......看起來像它不接受特定指數或其他東西的元素? 我不明白這真的很好,這就是為什么我在尋求幫助的原因。
IE10的這個例子是否存在任何變通方法?
JS:
var form = new FormData($('.uploadForm')[0]);
config.progressBar.progressWidth = 0;
$('.uploadForm .valueBox').fadeOut('slow',function(){
$(this).addClass('hidden')
$('.meter').removeClass('hidden').width(config.progressBar.width);
$.ajax({
url: '../../uploads/some.php',
type: 'POST',
xhr: function() {
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){
myXhr.upload.onprogress = progress;
}
return myXhr;
},
success: function (res) {
console.log(res)
},
data: form,
cache: false,
contentType: false,
processData: false
});
和平的some.php
代碼:
foreach($_FILES["file"]["error"] as $key => $value) {
if ($value == UPLOAD_ERR_OK){
$name = $_FILES["file"]["name"][$key];
$arr_files = getimagesize($_FILES["file"]["tmp_name"][$key]);
$width = $arr_files[0];
$height = $arr_files[1];
$mime = $arr_files['mime'];
copy($_FILES['file']['tmp_name'][$key], '../uploads/upload/'.$name);
echo json_encode($_FILES);
}
}
拋出IE10錯誤: SCRIPT5: Access is denied.
不要將文件傳遞給構造函數,而是使用append
,如:
var formData = new FormData();
formData.append('file', $('input[type=file]')[0].files[0]);
如果需要嘗試這個功能,這個功能很好用,
這里沒有給出動作url代碼,只是php文件上傳功能但只返回-1,0,1,2,用於識別錯誤和成功
function submitForm(){
$('.uploading').show();
var formObj = $('#multiform');
var formURL = formObj.attr("action");
if(window.FormData !== undefined) // for HTML5 browsers
{
var formData = new FormData(formObj[0]);
$.ajax({
url: formURL,
type: 'POST',
data: formData,`enter code here`
mimeType:"multipart/form-data",
contentType: false,
cache: false,
processData:false,
success: function(data, status){
$('.uploading').hide();
if(data==1){
$('.uploadSuccessReport').show();
$(".uploadSuccessReport").html('Successfully uploaded');
setTimeout(function() { $('.uploadSuccessReport').hide('slow'); }, 2000);
}else if(data==0){
$('.uploadErrorReport').show();
$(".uploadErrorReport").html('Something Error Happen');
setTimeout(function() { $('.uploadErrorReport').hide('slow'); }, 2000);
}else if(data==-1){
$('.uploadErrorReport').show();
$(".uploadErrorReport").html('Already exists, Please chose another one or Rename');
setTimeout(function() { $('.uploadErrorReport').hide('slow'); }, 2000);
} else if(data==2){
$('.uploadErrorReport').show();
$(".uploadErrorReport").html('Invalid File, Please Check file Format');
setTimeout(function() { $('.uploadErrorReport').hide('slow'); }, 2000);
}
},
});
}
}
<form name="imageUpload" action="ajaxupload.php" method="post" id="multiform" enctype="multipart/form-data">
<span class="btn btn-file uploadSpan">Upload <span class="uploading" style="display:none;"><img src="assets/ajax-loader.gif" width="15%"></span>
<input type="file" name="file" id="disabledInput" class="btn-file uploadImage" onchange="submitForm()" />
</span>
</form>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.