struts2上传大文件上传
A. Struts2 上传文件过大问题
struts2文件上传有个默认的拦截器叫做fileUpload,对应的拦截器类名称为org.apache.struts2.interceptor.FileUploadInterceptor你可以在default.properties文件中配置struts.multipart.maxSize项为你想要的大小.默认即2097152,即2M(2097152/1024/1024);
B. struts2中限制上传文件大小后错误信息的显示
Struts2本身提供了一个文件上传的拦截器,通过配置该拦截器可以更轻松地实现文件过滤。我们只需要在Action中配置该拦截器就可以了。当文件过滤失败后,会自动转向input逻辑视图,因此必须为该Action配置名为input的逻辑视图,除此之外还必须为配置defaultStack的拦截器的引用。配置文件如下:
<action name="upload" class="com.annlee.upload.UploadAction" >
<!-- 配置fileUpload的拦截器 -->
<interceptor-ref name="fileUpload">
<!-- 配置允许上传的文件类型 -->
<param name="allowedTypes">image/bmp,image/gif,image/jpg</param>
<!-- 配置允许上传的文件大小 -->
<param name="maximumSize">2000000</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<param name="savePath">/</param>
<result>/common/succ.jsp</result>
<result name="input">/cos_fileupload/fileupload.jsp</result>
</action>
如果上传失败系统会返回到原来的页面,要在原来的页面上加上以下错误提示代码:
<s:fielderror />这样系统就会返回提示给用户,但是这时的提示是Struts2自带的提示,非常不友好,我们可以国际化资源里配置以下两项,我们的提示就会自动替换Struts2的提示,提示的关键字如下
struts.messages.error.file.too.large
struts.messages.error.content.type.not.allowed
此外,如果用户上传失败的原因不是因为以上两种还有另外的一个信息提示用户,它的关健字是:struts.messages.error.uploading,我们也应该替换这个提示信息。
其它说明:如果没有指定临时的保存文件夹,系统就会使用javax.servlet.context.tempdir路径,这个路径是Tomcat的work\Catalina\localhost\,我们应该设置自己的路径,这个配置的属性为struts.multipart.saveDir可以在struts.properties中配置,还有一个文件上传的属性:struts.multipart.maxSize设置整个表单请求内容的最大字节数。
C. 使用struts2如何实现文件上传
新建Web Project,在WebRoot下新建upload文件夹
在WebRoot下新建upload.jsp,上传界面
编写上传成功、失败的提示界面。
在WebRoot下新建uploadError.jsp
在WebRoot下新建uploadSuccess.jsp
编写Action类
配置struts.xml文件,重置fileUpload拦截器。
测试,测试完成之后在tomcat下面webapps目录下找到项目对应的文件夹下的upload下查看
D. struts 2.x 文件上传,允许上传大小限制问题
很简单,在Action配置中添加如下内容
<action name="" class="">
<interceptor-ref name="defaultStack">
<param name="fileUpload.maximumSize">102400</param><!--大小限制为100KB-->
</interceptor-ref>
</action>
E. struts2文件上传
引入commons-fileupload 的jar包,页面标签是file类型。后台直接按前台标签的名字按流读取就行了。跟普通的上传下载没区别。
F. SSH框架,利用Struts2上传大文件的问题
只能上传文本文件及照片等小文件,过大就报错
G. struts2中关于文件上传的配置
MIME类型。text/plain表示文本类型
H. Struts2 多文件上传,高手请进!!
首先,你要知道怎么在action是区分文件。struts2可以同时上传多文件,action接收到的是一个File list,如果你要区分只能从文件的contentType进行差别,但不同浏览器对同一种文件类型的contentType有可能不同。所以,你要知道不同浏览器对文件的contentType。
最后,就是在action里得到得到文件的contentType进行判断,对不同的文件进行不同处理就行了。
当然你也可以用文件的后缀进行判断,不过不推荐使用后缀进行文件类型的判断
I. 关于struts2框架的文件上传问题。。。上传的文件超过2MB就报下面的异常,请问怎么解决
在struts.xml中设置
<constant name="struts.multipart.maxSize" value="314572800"></constant> <!-- 允许300M -->
可以允许上传300M的呢!我试了下,上传了个202M的电影,竟然上传成功了!
J. struts2 如何动态限制文件上传大小
1 配置好struts的上传文件限制大小是不能修改的,这个是所有上传文件都必须接受的物理限制,当然,根据需要你可以把这个值设大点 2 用户可以配置的值必须在程序中控制,也就是说有你要保存一个配置项(例如:可以保存在数据库中),用户可以去修改这个,修改时更新数据库就行了。 3 用户上传文件时,需要判断文件大小是否超过数据库中这个配置项,超过了的话就不会进行后面的上传行为了,对用户返回错误信息。