可能重复:
使用带有 .change() 事件的输入类型 =“file”字段上传文件并不总是在 IE 和 Chrome 中触发
我有以下代码使用 .submit() 成功上传图像
// Photo Upload Form - AutoUpload
$('input#file').change(function() {
var maxsize = '20971520';
var fileExtension = $(this)
.val()
.split('.')
.pop()
.toLowerCase();
if(this.files[0].size > maxsize) {
$('h4#maxFileSizeExceeded').show();
}else if($.inArray(fileExtension, ['gif','png','jpg','jpeg']) == -1) {
$('h4#fileTypeNotAllowed').show();
}else{
if(pushState == '0') {
$('div#uploadPercentage').hide();
$('img#uploadGifLoaderHTML4').fadeIn('fast');
}
$('form#joinPhotoUploadForm').submit();
jcrop_api.destroy();
$('div#croppingBackgroundContainer').fadeIn(1000);
$('div#cropBoxWrapper').css('margin-left', '0px');
}
});
我遇到的问题是,如果用户再次请求相同的文件,则没有更改并且提交不会触发。
有没有办法再次请求同一个文件,或者再次知道它的同一个文件,或者可以对输入 type="file" 进行某种重置?
********************* 更新
<form action="scripts/php/photo_processing.php?page=join§ion=precrop" id="joinPhotoUploadForm" enctype="multipart/form-data">
<input type="file" name="file" id="file"><br>
</form>
用户单击浏览按钮并可以选择图像。如果用户选择不同的图像,图像将上传。但是,如果用户选择相同的图像,.change() 函数根本不会触发。我假设是因为它保持与以前相同的状态。
谢谢