「追加」機能を変更してみましたが、すべての Internet Explorer ブラウザーで、選択したファイルが入力ボックスに表示されないことを除いて、ちょっと動作します。また、私の経験では、ボタンをクリックする前に複数回変更すると、すべてのファイルがアップロードされます。これは私にとってはうまくいきました: 1. blueimp fileupload オブジェクトをすぐにインスタンス化しないでください 2. 基本的に fileupload オブジェクトをインスタンス化する関数を作成します 3. 上記の #2 の関数をボタンのクリックにアタッチします 以下のコードに冗長性があることに気付きました. また、IframeTransport を強制します。おそらく、そのブラウザー チェックを行うことができます。また、追加機能のブラウザ チェックを行うこともできます。つまり、「fileInput」を使用できます。それ以外の場合は「file」を使用できます。これは、進行状況バーを除いて、すべてのブラウザーでうまく機能します。
<script>
$(function () {
/*do your jquery stuff here, but do not call fileupload*/
$("btnUpload").click(function(){
/*i can add additional post params*/
/*some of this is redundant*/
var post = Array({name:"hello", value:"there"});
uploadFileOnClick("fileupload", $("#fileupload") ,post, true);
});
});
function uploadFileOnClick(id, file, post, _autoUpload) {
$('#'+id).fileupload({
dataType: 'json',
multipart: true,
autoUpload: true,
formData: post,
forceIframeTransport: true,
progress: function (e, data) {
/*insert progress code here*/
},
done: function (e, data) {
/*insert your code here*/
}
});
if (_autoUpload) {
$('#'+id).fileupload('add', {files: file});
}
}
</script>
<body>
<form method="post" enctype="multipart/form-data">
<input type="file" id="fileupload" name="somename" data-url="yourserver.php?goeshere=true"/>
</form>
<!-- i use a link in my case, it will work if you use a button in the form as well-->
<a href="javascript:void(0);" id="btnUpload">Upload</a>
</body>