当前位置:首页 » 文件管理 » struts上传文件夹

struts上传文件夹

发布时间: 2023-01-11 23:11:38

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

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

㈡ 请问struts2上传文件怎么保存到指定的文件夹(不是保存在tomcat里面)

自己在接受文件时,你把文件写到你自己想写到的文件夹就可以了,不要使用tomcat里的servlet api获取文件路径即可。

㈢ Struts2中怎么上传以*.jar格式结尾的文件看了好都是图片格式,XML、txt格式等,就是没有jar格式滴。

下面是我的一个示例
Struts2-文件上传示例
1.在Struts2项目(Struts2)下导入上传文件必要的jar包

commons-fileupload-1.2.1.jar

commons-io-1.3.2.jar

2. 文件上传页面(fileUpload.jsp)

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>文件上传页面</title></head>
<body>
<form action="fileupload.action" method="post" enctype="multipart/form-data"><!-- 对于文件上传,form应满足的配置 -->
username:<input type="text" name="username"><br/>
file:<input type="file" name="file"><br/>
<input type="submit" value="submit">
</form>
</body>
</html>

3.定义上传文件的Action( UploadAction.java)

package com.zlc.struts2;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport {
private String username;

private File file;//要上传的具体文件

private String fileFileName;//表示文件名字(固定写法)
private String fileContentType;//文件类型(必须满足约束的名字),定义该字段将会获取文件的类型

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public File getFile() {
return file;
}

public void setFile(File file) {
this.file = file;
}

public String getFileFileName() {
return fileFileName;
}

public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}

public String getFileContentType() {
return fileContentType;
}

public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}

@Override
public String execute() throws Exception {

/*HttpServletRequest req = ServletActionContext.getRequest();
String root = req.getRealPath("/upload");//找到文件需要存储的路径
*/
String root = ServletActionContext.getServletContext().getRealPath("/upload");//和上面注释的一样,都能获得绝对路径
InputStream is = new FileInputStream(file);//FileInputStream就从文件系统中的某个文件中获得输入字节。通过打开一个到实际文件的连接来创建一个 FileInputStream

System.out.println("fileFileName: "+fileFileName);//打印一下来获得文件名

File destFile = new File(root, fileFileName);//创建一个目标文件,指定目标文件的位置和文件名

OutputStream os = new FileOutputStream(destFile);//创建一个向指定 File 对象表示的文件中写入数据的文件输出流。

byte[] buffer = new byte[4096];
int length=0;
while((length=is.read(buffer))!=-1){//从输入流中读取数据的下一个字节;如果到达流的末尾,则返回 -1
os.write(buffer, 0, length);
/*将指定 byte 数组中从偏移量 0 开始的 length 个字节写入此输出流。
元素 b[0] 是此操作写入的第一个字节,b[length-1] 是此操作写入的最后一个字节。*/
}
is.close();
os.close();
return SUCCESS;
}
}
4.文件上传结果页面,用于显示结果信息(fileUploadResult.jsp)

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>文件上传结果页面</title>

</head>

<body>
username:<s:property value="username"/><br/>
name:<s:property value="fileFileName"/><br/>
type:<s:property value="fileContentType"/><br/>
</body>
</html>
5. struts2配置文件(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.devMode" value="true" />

<package name="struts2" namespace="/" extends="struts-default">

<action name="fileupload" class="com.zlc.struts2.UploadAction">
<result name="success">/fileUploadResult.jsp</result>
</action>

</package>
</struts>

6.注意一点,别忘了在项目的WebRoot下面建立一个文件夹upload,用以存放上传的文件

7.在地址栏里输入http://localhost:8080/Struts2/fileUpload.jsp进行验证,jar文件是可以上传的

㈣ 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

㈤ struts2可以上传整个文件夹(里面全是图片)吗求指点

可以 ,只要你将文件类型制定好就可以了,但是你必须想将其压缩

例如<param name="allowedTypes">file/jar,file/zip</param>

㈥ struts2 上传文件夹不存在时如何自动创建文件夹

String path=ServletActionContext.getServletContext().getRealPath("Upload") + "/" +fileFileNames;
File file=new File(path);
if(!file.exists()){
file.mkdirs();
}

热点内容
虫之岛ONS解压密码 发布:2025-08-30 15:35:09 浏览:176
linux循环while循环 发布:2025-08-30 15:33:37 浏览:238
字符编码与存储 发布:2025-08-30 15:33:36 浏览:892
c语言4的意思 发布:2025-08-30 15:26:49 浏览:410
传奇解压包下载 发布:2025-08-30 15:19:59 浏览:783
iisftp绑定域名解析 发布:2025-08-30 15:08:41 浏览:576
c语言的最大公约数 发布:2025-08-30 15:07:03 浏览:784
支持源码输出的盒子 发布:2025-08-30 14:58:24 浏览:834
安卓机与苹果机哪个便宜 发布:2025-08-30 14:47:05 浏览:909
C语言求幕 发布:2025-08-30 14:47:02 浏览:706