を使用してファイルをアップロードしています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.