struts上传文件
1. struts2 上传图片 文件对象是null
配置文件的问题,先配置文件上传拦截器,然后在配置默认的拦截器(一定要配置默认的拦截器,否则值是无法接收的)
2. struts2中上传文件时报404错误
如果说配置文件字段名都没有错的话那就是说你的上传的文件超过了4M,而fileupload默认的上传限度为4M!如果没有跟改配置的话那就会抛出异常!而在struts2中则是返回为input!而你又在struts.xml中没有配置<result name = "input">/test.jsp</result>所以为出现404!如果先要根治的话!你需要在配置文件中配置一下<constant name="struts.multipart.maxSize" value="20480000"/>
value的值你可以看着设!最大限度是2G
3. javaee 用struts2的文件上传,保存才服务器目录下 服务器是tomcat 为什么电脑重启后 文件就没有了
首先,
文件上传到服务器是保存在磁盘上的,磁盘是永久性存储介质,如果不是手动删除或者中毒(这种可能性不大),是不会丢失的。你可能是上次运行的时候上传的文件在服务器中,后来被你重新发布项目把原项目直接覆盖掉了,因为你原项目中可能没有存你新发布的图片,所以直接丢失掉了,建议如果有重要的上传文件,先将已经上传的文件备份一下,再发布新的项目。或者是你发布新文件的时候设置一下那个发布选项,只覆盖旧文件,不要全部删除后上传新项目,如图
4. struts2文件上传,值为null
应该是可行的。你在看看是以什么方式请求的,文件上传需要post 提交,如果不是这个 我也不知道了!
5. struts2批量上传文件提示以下异常
struts.multipart.saveDir没有配置。
struts.multipart.saveDir用于指定存放临时文件的文件夹,
于是在,struts.xml配置文件中增加如下:
<constant
name="struts.multipart.saveDir"
value="/tmp"/>
设置临时文件上传路径。
6. 我用struts2做的上传文件功能,但当文件超过2G时页面出现错误,这个有什么办法解决么
struts配置文件里有个上传大小的常量可以配
可以配置default.properties文件,也可以直接配xml常量
常量名是struts.multipart.maxSize
值的话你自己换算就好了 1K*1024*1024什么什么的自己乘完放到value里
7. 为什么struts2上传文件自动保存到tomcat下,如何更改成自定义路径
1:上传的路径是可以自定义的
2:上传需要的jar包:
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
3:直接上主要代码:
(1)jsp页面:
<form action="./user/upload.action" method="post" enctype="multipart/form-data">
上传文件:<input type="file" name="upload"><br>
<input type="submit" value="上传">
</form>
(2)struts配置:
<package name="example" namespace="/user" extends="struts-default">
<action name="upload" class="com.struts2.action.UploadAction" method="upload">
<result name="success" type="dispatcher">/example/success.jsp</result>
</action>
</package>
(3)java代码:
public class UploadAction {
private File upload;
private String uploadFileName ; //格式 <input name="upload"> + FileName ;
private String uploadContentType ; //格式<input name="upload"> + ContentType ;
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String upload() throws Exception {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(upload));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D:/temp/"+uploadFileName));
byte[] b = new byte[1024*1024];
int i = bis.read(b);
while(i!=-1){
bos.write(b,0,i);
i = bis.read(b);
}
bos.flush();
bis.close();
bos.close();
return "success" ;
}