当前位置:首页 » 文件管理 » struts2上传路径问题

struts2上传路径问题

发布时间: 2022-12-21 07:38:15

A. 为什么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" ;
}

B. struts2批量上传文件提示以下异常

struts.multipart.saveDir没有配置。
struts.multipart.saveDir用于指定存放临时文件的文件夹
于是在,struts.xml配置文件中增加如下:
<constant
name="struts.multipart.saveDir"
value="/tmp"/>
设置临时文件上传路径。

C. struts 2 上传文件时,怎么样让它的默认路径是WebContent工程下的目录

你这样写是没错的,只是用eclipse开发时,eclipse会自己产生一个暂时目录将你的web项目发布到该暂时目录下。你可以看下那个暂时目录,结构和你的工程目录是一样的。
eclipse的工作目录和测试用的目录是不一样的

D. 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

E. struts2 文件上传怎么指定保存文件的路径和大小

在action配置文件struts.xml里设置(如下):
<package name="upload" extends="struts-default">
<action name="upload" class="">
<!--配置fieldUpload拦截器--->
<interceptor-ref name="fileUpoad">
<param name="allowedTypes">image/bmp,image/png,image/jpg,image/gif</param>
<param name="maximumSize">200000</param>
</interceptor-ref>
<!---必须显示配置引用struts默认的拦截器栈:defaultStack----->
<interceptor name="defaultStack"></interceptor>
<!---设置上传路径----->
<param name="savePath">/upload</param>
<result name="success">/upload_succ.jsp</result>
<result name="input">/upload.jsp</result>
</action>
</package>
希望能帮到你哈....

F. struts2在linux下上传文件路径的问题

很有可能是权限不对吧, 那个目录是任何人都可以读写吗? chmod 777 **/tomcat/webapps/soft 这样试试,看行不行

G. struts2上传问题!用struts2上传图片到d盘test文件夹下!然后运行页面显示!怎样写这图片路劲

把保存文件的File类参数换成绝对路径.

如果不明白,请上你现在的代码

H. struts2 文件上传路径错误 ERROR [STDERR] java.io.FileNotFoundException:

这个可能就是你的Struts2的配置路径的原因了,你在struts.xml中配置这个Struts的路径的时候,可能多加了一个“.”,因此在路径中才会有“.”出现的原因吧,所以你检查一下你的配置文件看看

I. struts2上传图片到linux服务器,成功上传文件,无法返回路径,报错: net::ERR_CONTENT_LENGTH_MISMATCH

因为windows和linux系统的文件路径分割符是不一样的。一个是“/”一个是“\”,所以换了环境当热会错。java中有一个方法叫做File.separator可以得到是运行环境下的分隔符,你需要在代码中做出修改。将文件路径拆开后然后使用 File.separator拼接。

J. struts2怎么改变文件上传地址

所谓上传,其实就是文件的拷贝,涉及到流的读写,上传的路径可以自己定义的,另外struts2可以在struts.xml中定义临时存储上传文件的路径,如下:
<!-- 系统常量定义,定义上传文件临时存放路径 -->
<constant name="struts.multipart.saveDir" value="d:\"></constant>
至于文件上传的路径,一般是获取到的上下文路径,当然也可以是别的,如下:
//上传文件存放路径,如果不存在,可以创建
private final static String UPLOADDIR = "/upload";
//执行上传功能
private void uploadFile(int i) throws FileNotFoundException, IOException {
try {
InputStream in = new FileInputStream(file.get(i));
//获取上下文路径
String dir = ServletActionContext.getRequest().getRealPath(UPLOADDIR);
//写文件
File uploadFile = new File(dir, this.getFileFileName().get(i));
OutputStream out = new FileOutputStream(uploadFile);
byte[] buffer = new byte[1024 * 1024];
int length;
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
in.close();
out.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
最后,在struts.xml中添加
<!-- 系统常量定义,定义上传文件字符编码集 -->
<constant name="struts.i18n.encoding" value="gb2312"></constant>
避免编码出现问题,另外还有文件大小、类型等等限制,网上有好多例子,可以参考一下,不知道这些对你有没有用

热点内容
怎样让隐藏文件夹显示 发布:2025-08-20 16:03:37 浏览:35
如何辨别密码箱密码锁坏了 发布:2025-08-20 16:02:47 浏览:969
河池都安服务器ip地址是什么 发布:2025-08-20 16:00:13 浏览:873
做自媒体剪辑需要什么配置的电脑 发布:2025-08-20 15:37:38 浏览:388
密码法的立法目地是什么 发布:2025-08-20 15:27:13 浏览:456
不小心删除微信怎么恢复聊天记录安卓 发布:2025-08-20 15:27:05 浏览:449
车载安卓系统指的是什么 发布:2025-08-20 15:23:47 浏览:713
安徽鲲鹏服务器云空间 发布:2025-08-20 15:19:37 浏览:790
怎样删除手机大存储 发布:2025-08-20 15:10:36 浏览:270
android关闭 发布:2025-08-20 15:09:44 浏览:61