用Struts2做文件上传时,前台js怎样获得文件对象,文件名,文件内容类型?(不用Bean的get,set方法)。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Struts2做文件上传时,前台js怎样获得文件对象,文件名,文件内容类型?(不用Bean的get,set方法)。相关的知识,希望对你有一定的参考价值。
正常做上传时,我点击提交,后台set方法里就有值了,但现在我想用button按钮,提交时用json把值传给后台,所以想通过js获得这三个值,原来的jsp页面是
<s:form action="fileSave" enctype="multipart/form-data" theme="simple" method="post">
请选择数据文件:<s:file name="file" />
<s:submit value="提交" />
</s:form>
如何用js获得文件对象file,文件名fileName,文件内容类型fileContentType
不会是getElementById吧?希望牛人解答在线等。。。
我要传一个Excel到服务器。代码如下 File fileSavePath=new File("c:/upload"); String fileSaveName="c:/upload/"+this.fileFileName;(此处是将重名文件重新取名方法) File savefile=new File(fileSaveName); this.file.renameTo(savefile); this.FileName可以用JS得到,关键是this.file这步需要获得file对象,没这步怎么在服务器上生成这个Excel呢
追答Struts2中,已经帮你把file对象传到action中了,在Action中定义一个全局变量,private File image;(注意,image名称必须与form表达的input中file的name相同)实现get和set方法,就获得该对象啊,然后通过inputstream写进来,通过outputstream写到服务器硬盘里,就实现上传了
参考技术A 你返回文件对象之后,file有个方法是getFileName()用来取得文件的名字。 参考技术B jquery上传插件。前端上传文件实时显示进度条和上传速度的工作原理是怎样的?
参考技术A后端的责任。
前端上传文件实时显示进度条和上传速度的工作原理就是后端的责任,在Django中实现需要重载上传文件的函数,在上传时文件是被分成数个MB的chunk处理的,每次都会调用这个上传函数。也就是说,每处理一个chunk就更新uploadedsize,然后浏览器端通过AJAX获取这个值和文件大小
最后用JavaScript渲染到页面上。
前端只能说会用框架和插件干活。前段时间用的百度的webuploader,demo就带进度条的。js代码不多可以看一下,猜测是监听事件。上传是前端和通信协议做的事,后端是写入。在比较传统流和和spring自带的transferto的耗时统称上传时间是不对的,应为写入时间。
项目框架采用spring+hibernate+springMVC如果上传文件不想使用flash那么你可以采用html5;截图前段模块是bootstarp框架;不废话直接来代码;spring-mvc配置文件。
nginx话lua可以拿到链接的套接口,读取套接口就可以知道当前上传了多少了。可以看下openresty的lualib/resty/upload.lua。
以上是关于用Struts2做文件上传时,前台js怎样获得文件对象,文件名,文件内容类型?(不用Bean的get,set方法)。的主要内容,如果未能解决你的问题,请参考以下文章