首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery:如何重置这个type=“文件”

jQuery:如何重置这个type=“文件”
EN

Stack Overflow用户
提问于 2013-07-26 03:02:06
回答 1查看 253关注 0票数 0

我需要防止用户上传大图像到服务器,并希望使用简单的输入type=“文件”。使用下面的jQuery,当this.files超过1048000时,如何重置“输入文件”?

代码语言:javascript
复制
$('.image-file').bind('change', function() {
  if ( this.files[0].size > 1048000 ) {
    alert('Image size can not more than 1Mb.');
    // going to reset the file            
  }
});

<input type="file" name="photo[]" class="image-file">
<input type="file" name="photo[]" class="image-file">
<input type="file" name="photo[]" class="image-file">
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-26 03:11:15

请尝试以下代码。但是要获得文件大小,可以使用服务器端代码,这将返回文件的大小。

代码语言:javascript
复制
$('#form_id').each(function(){
    this.reset();
});


<input id="fileInput" type="file" onchange="AlertFilesize();" />

下面的代码是使用javascript函数获取文件大小。

代码语言:javascript
复制
function AlertFilesize(){
if(window.ActiveXObject){
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var filepath = document.getElementById('fileInput').value;
    var thefile = fso.getFile(filepath);
    var sizeinbytes = thefile.size;
}else{
    var sizeinbytes = document.getElementById('fileInput').files[0].size;
}

var fSExt = new Array('Bytes', 'KB', 'MB', 'GB');
fSize = sizeinbytes; i=0;while(fSize>900){fSize/=1024;i++;}

alert((Math.round(fSize*100)/100)+' '+fSExt[i]);

}

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17872177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档