struts 2 上传文件问题
struts.xml 配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 系统常量定义,定义上传文件字符集编码 -->
<constant name="struts.i18n.encoding" value="utf-8"></constant>
<!-- 系统常量定义,定义上传文件临时存放路径 -->
<constant name="struts.multipart.saveDir" value="D:JAVAapache-tomcat-7.0.23temp"></constant>
<package name="file" extends="struts-default">
<action name="fileupload" class="com.test.action.UploadAction">
<result name="success">./upload/uploadResult.jsp</result>
<result name="input">/Exception.jsp</result>
<interceptor-ref name="fileUpload">
<param name="maximumSize">409600</param>
<param name="allowedTypes"> image/png,image/gif,image/jpeg</param>
</interceptor-ref>
</action>
</package>
</struts>
上传的文件,为什么还是会被删掉呢???
2013-1-20 11:43:08 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info
信息: Removing file file D:JAVAapache-tomcat-7.0.23tempupload__6e0fd9d1_13c560d73b1__8000_00000002.tmp如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
package com.test.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
//import java.io.InputStream;
//import java.io.OutputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport
{
//上传用户的信息
/**
* 文件上传处理Action
*/
private static final long serialVersionUID = 1L;
private String name ;
private String password ;
//存储请求提交过来的,文件的内容 (****字节流****)
private File file ;
//文件名字
private String filename ;
//文件的路径
private String fileContentType ;
public String getFilename()
{
return filename;
}
public void setFilename(String filename)
{
this.filename = filename;
}
public String getFileContentType()
{
return fileContentType;
}
public void setFileContentType(String fileContentType)
{
this.fileContentType = fileContentType;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public File getFile()
{
return file;
}
public void setFile(File file)
{
this.file = file;
}
/**
*
* 业务、逻辑处理方法
*/
@SuppressWarnings("deprecation")
@Override
public String execute() throws Exception
{
try
{
// 输入输
FileInputStream Is = new FileInputStream(file);
String webroot = ServletActionContext.getRequest().getRealPath("/tmp");
System.out.println("webroot = "+webroot);
File destFile = new File(webroot,this.getFilename());
//生成一个输出流
FileOutputStream Os = new FileOutputStream(destFile);
byte[] buffer = new byte[400] ;
int length = 0 ;
while((length = Is.read(buffer))>0)
{
Os.write(buffer,0,length);
}
Is.close() ;
Os.close() ;
}catch (Exception e) {
e.printStackTrace();
return INPUT ;
}
return SUCCESS ;
}
public String test()
{
System.out.println("test");
return SUCCESS ;
}
}
你把uploadAction类的代码贴上来。
Struts2 会自动接收文件, 并存到零时目录, 对于tomcat就是temp文件夹.
在Action中你需要自己存一下这个文件
http://www.cnblogs.com/linjiqin/archive/2011/03/21/1990674.html
晕啊。。。学艺不精啦。。。终于找到原因了。。。Action没有写对。。。。。改“filename”为 “fileFileName” 这里犯了致命的错误
。。。struts框架已经封装好了 “ fileFileName ”属性的。。。 用了两天,终于解决了这个小细节错误 。