分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

input file 文件上传,js控制上传文件的大小和格式

发布时间:2023-09-06 01:51责任编辑:沈小雨关键词:js文件上传

文件上传一般是用jquery的uploadify,比较好用。后面会出文章介绍uploadify这个插件。

但是,有时候为了偷懒,直接就用input 的file进行文件和图片等的上传,input file 可以控制上传的格式,但是是html5,很多浏览器不支持,请看我的文章对input file上传类型的控制。

下面我用javascript来控制文件上传的大小和类型。

贴出html代码:

<form ?action="后端接口" enctype="multipart/form-data" method="post" id="attachment_uploads">
?<div class="attachs fl">
??????<div class="t_fjfont">附件:</div>
??????<div class="upload_btns"><input type="file" name="file" ?id="file" onchange="fileChange(this);" /> </div>
?</div>
?<div class="attachs fl">
??????<div class="t_fjfont" style="color:red;font-size:12px;font-weight:bold">文件上限2MB</d
?</div>
?<div class="attachs fl">
??????<div class="upload_btns"><input type="file" name="files" ?id="file_fujian" onchange="filefujianChange(this);" /> <input type="hidden" name="rev" class="hide_rev" /></div>
?</div>
?</form>

javascript代码:

function fileChange(target) {
????var fileSize = 0; ??????
??????if (isIE && !target.files) { ????
??????var filePath = target.value; ???????????var fileSystem = new ActiveXObject("Scripting.FileSystemObject"); ?????
????????var file = fileSystem.GetFile (filePath); ????
??????fileSize = file.Size; ???
????} else { ???
?????fileSize = target.files[0].size; ????
?????} ??
?????var size = fileSize / 1024; ?????????if(size>2000){ ?
??????alert("附件不能大于2M");
??????target.value="";
??????return
?????}
?????var name=target.value;
?????var fileName = name.substring(name.lastIndexOf(".")+1).toLowerCase();
?????if(fileName !="xls" && fileName !="xlsx"){
?????????alert("请选择execl格式文件上传!");
?????????target.value="";
?????????return
?????}
???}

??function filefujianChange(target) { ??????var fileSize = 0; ????????
??????if (isIE && !target.files) { ????
????????var filePath = target.value; ?????????????var fileSystem = new ActiveXObject("Scripting.FileSystemObject"); ?????
??????????var file = fileSystem.GetFile (filePath); ????

????????fileSize = file.Size; ???
??????} else { ???
???????fileSize = target.files[0].size; ??
?????????} ??
???????var size = fileSize / 1024; ???
???????if(size>2000){ ?
????????alert("附件不能大于2M");
????????target.value="";
????????return
???????}
???????var name=target.value;
???????var fileName = name.substring(name.lastIndexOf(".")+1).toLowerCase();
???????if(fileName !="jpg" && fileName !="jpeg" && fileName !="pdf" && fileName !="png" && fileName !="dwg" && fileName !="gif" ){
?????????alert("请选择图片格式文件上传(jpg,png,gif,dwg,pdf,gif等)!");
???????????target.value="";
???????????return
???????}
?????}

上面代码当时为了考虑兼容问题,没有写html5的文件上传控制,直接在js中控制了。本代码支持所有直流浏览器!兼容性还是可以的!欢迎交流!

2018-04-28更新

上面判断中的isIE是用来判断是否是IE浏览器的,不用的话可以直接去掉!

input file 文件上传,js控制上传文件的大小和格式

原文地址:https://www.cnblogs.com/jpfss/p/8966406.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved