永发信息网

如何清除FileUpload中的文件

答案:2  悬赏:40  手机版
解决时间 2021-01-24 10:07
如何清除FileUpload中的文件
最佳答案
对于file值是只读的,我们没有办法去改变它,不过一些变相的方法还是可以的。 方法一:上传控件基础知识说明:上传控件(input type="file"/)用于在客户端浏览并上传文件,用户选取的路径可以由value属性获取,但value属性是只读的,不能通过javascript来赋值,这就使得不能通过value=""语句来清空它。很容易理解为什么只读,如果可以随意赋值的话,那么用户只要打开你的网页,你就可以随心所欲的上传他电脑上的文件了,呵呵,毕竟表单的submi是可以随便调用的。而上传控件又没有一个clear()之类的函数,所以这使得无刷新上传文件显得稍稍不爽,尤其对于追求完美的开发者而言。然而今天在做一个Asp.net控件时却发现不得不需要清空一下上传控件,于是便开始想办法。网上搜索一番,不出所料,没有找到什么结果。关键时刻只能靠自己了。仔细想想,上传控件是不是任何时候都不可能被清空呢?答案是否,form.reset()方法能够重置所有得表单元素。只要调用inputFile.form.reset(),那么上传控件的值就清空了,不要担心它被恢复为某个默认值,value是只读的,你不能为它设置某个初始值。于是开始设想,如果我只需要reset一下上传控件,怎么解决?其他的表单元素要保持原状。一个可行的方法是,reset之前获取所有的表单域的值,之后再用这些值填充,虽然显得稍微复杂,但借助prototype框架的Form对象提供的方法,还是很容易做到的。这样就能够得到需要的结果了。然而这个方法还是不够优雅,沿着思路继续想下去,不难得到改进的方法:创建一个新的form,把上传控件临时放过来,再调用这个form的reset方法,完工之后再把上传控件弄回去。这个form无需进入DOM结构便能正常工作,所以不用担心会对界面有任影响。下面给出函数实现,经过验证工作良好,呵呵。程序代码//清空文件上传框function clearFileInput(file){ var form=document.createElement('form'); document.body.appendChild(form); //记住file在旧表单中的的位置 var pos=file.nextSibling; form.appendChild(file); form.reset(); pos.parentNode.insertBefore(file,pos); document.body.removeChild(form);}方法2 用这个方法不能保存input的样式比较简单了 重新建立个 file 就可以了。程序代码span id=span1 input name=ab type=file /span input name=button1 type=button value="按" onclick=show() script language=javascript function show() { document.getElementById("span1").innerHTML="input name=ab type=file } /script 方法3,用这个方法可以保存input的样式 input name=button1 type=button value="按" onclick=show() script language=javascript function show() { var e=document.getElementById("span1"); e.outerHTML=e.outerHTML; } /script
全部回答
jquery异步上传,一般来说这里上传调用的是系统专门上传的action,上传好后返回上传文件信息。你这里result.files就是返回的上传结果。这个需要你在后台自己封装。你前端需要什么,后台就封装什么。 比如我以前写过一个 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 map fileobject = new hashmap(); fileinfo.put("size", size);//原始文件大小 fileobject.put("original", original);//原始文件唯一标识 fileobject.put("originalpath", originalpath);//原始文件临时存储目录 fileobject.put("thumb", thumb);//图片的预览文件唯一标识 fileobject.put("thumbpath", thumbpath);//图片预览文件临时存储目录 fileobject.put("name", filefilename);//原始图片名称 fileobject.put("url", url);//原始图片的web查看地址,这个可以设置img.src属性 fileobject.put("thumbnailurl", thumbnailurl);//预览图片的web查看地址 fileobject.put("contenttype", filecontenttype);//上传文件type fileobject.put("deletetype", "post");//这是我自己封装的post删除 //这个是我自己封装的删除路径 fileobject.put("deleteurl", super.getrequest().getcontextpath() + "/removeupload.do?id=" + original); map[] filearray = new hashmap[1]; filearray[0] = fileobject; jsonobject jsonobject = new jsonobject(); jsonobject.put("files", jsonarray.fromobject(filearray)); httpservletresponse response = getresponse(); response.setcontenttype("application/json;charset=utf-8"); response.getwriter().write(jsonobject.tostring()); response.getwriter().flush(); 而前断可以将上传文件的唯一标识放到一个隐藏域里,表单提交的时候一起提发送到后台,再根据唯一标识去取上传文件信息或写或复制转移。 前断fileuploaddone我是这么用的 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 on('fileuploaddone', function(e , data){ //上传结果 $.each(data.result.files, function(index , file){ if (file.url) { var link = $('').attr('target', '_blank').prop('href', file.url); //这个是文件上传后的展示区域,可以在fileuploadadd事件里构建 var $imgdiv = $(data.context.children()[index]); var $link = $imgdiv.find("canvas").wrap(link); $imgdiv.append($('').prop('value', file.original)); $imgdiv.append($('').prop('value', file.name)); } else if (file.error) { var error = $('').text(file.error); $(data.context.children()[index]).append(error); } }); })
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
生化危机系列游戏,跟求生之路系类游戏哪个好
通络堂盲人按摩店地址在什么地方,我要处理点
Last fall I put a bird feeder outside my w
尼康 D80 拍出来的东西很亮
如图所示,粗糙长木板l的一端固定在铰链上,
康美火疗养生馆地址好找么,我有些事要过去
想知道: 岳阳市 东洞庭湖国家湿地公园 在哪?
一种表情动作(如沉默、流泪、哭、……),仿
榕山国土资源所地址在什么地方,想过去办事
小明在如图所示电路实验中,他想当开关掷向1
mh4g 里招募的猫在猫板里没有,解雇随从猫选
古蔺县双沙镇红十字会地址在哪,我要去那里办
锗石汗蒸怎么去啊,我要去那办事
喻寺国土资源所地址有知道的么?有点事想过去
单选题Please________thenumbersandI’msure
推荐资讯
夸奖女生漂亮聪慧的词语有哪些?
单选题英国资产阶级革命前,新贵族与资产阶级
上海迪士尼有哪些亮点?
溧阳工商局上兴分局地址有知道的么?有点事想
It suddenly occurred to him he had left hi
黑山县环保局地址有知道的么?有点事想过去
普通列车K782上有没有餐车间啊?一般在几车厢
单选题旅游景区的基本组成要素不包括A.景区内
杭州下沙东方医院做性激素六项检查要多少钱啊
单选题能反映生产者与消费者关系的是A.螳螂捕
有人用下列方法除去硬水中某些可溶性钙、镁化
“装修时屋内墙壁已经刷了乳胶漆,想在刷一遍
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?