struts 2 上传文件问题

发布于 2021-11-13 02:01:19 字数 1467 浏览 906 评论 5

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

辞别 2021-11-18 15:56:50

奢华的一滴泪 2021-11-18 14:03:22

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 ;
}
}

刘备忘录 2021-11-18 02:59:25

你把uploadAction类的代码贴上来。

泛滥成性 2021-11-17 06:00:28

Struts2 会自动接收文件, 并存到零时目录, 对于tomcat就是temp文件夹.

在Action中你需要自己存一下这个文件

http://www.cnblogs.com/linjiqin/archive/2011/03/21/1990674.html

剑心龙吟 2021-11-13 05:20:26

晕啊。。。学艺不精啦。。。终于找到原因了。。。Action没有写对。。。。。改“filename”为 “fileFileName”    这里犯了致命的错误
。。。struts框架已经封装好了 “ fileFileName ”属性的。。。 用了两天,终于解决了这个小细节错误 。   

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文