上传jsp
---------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title></title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript">
function addMore()
{
var td = document.getElementById("more");
var br = document.createElement("br");
var input = document.createElement("input");
var button = document.createElement("input");
input.type="file";
input.name="file";
button.type="button";
button.value="Remove";
button.onclick = function(){
td.removeChild(br);
td.removeChild(input);
td.removeChild(button);
}
td.appendChild(br);
td.appendChild(input);
td.appendChild(button);
}
</script>
</head>
<body>
<form action="upload/save.do" enctype="multipart/form-data" method="post">
<table align="center" width="40%">
<tr>
<td>file:</td>
<td id="more"><!-- 定义一个id,方便javascript调用 -->
<input type="button" value="Add More..." onclick="addMore()">
</td>
</tr>
<tr>
<td><input type="submit" value="提交"> </td>
</tr>
</table>
</form>
</body>
</html>
------------------------------------------------------------------------------------------------------------
http://yitong.xiaodoutao.com/
上传Action
-----------------------
public class UploadAction extends ActionSupport {
private List<File> file;
//下面两个变量是文件名与文件类型,Struts2会自动为以下两变量赋值
private List<String> fileFileName;
private List<String> fileContentType;
public List<File> getFile() {
return file;
}
public void setFile(List<File> file) {
this.file = file;
}
public List<String> getFileFileName() {
return fileFileName;
}
public void setFileFileName(List<String> fileFileName) {
this.fileFileName = fileFileName;
}
public List<String> getFileContentType() {
return fileContentType;
}
public void setFileContentType(List<String> fileContentType) {
this.fileContentType = fileContentType;
}
public String save() {
String root = ServletActionContext.getRequest().getRealPath("upload");
File dir = new File(root);
if (dir.exists()==false){
dir.mkdir();
}
for(int i = 0;i < file.size(); i++){
InputStream is = new FileInputStream(file.get(i));
File destFile = new File(root,this.getFileFileName().get(i));
OutputStream os = new FileOutputStream(destFile);
byte[] buffer = new byte[1024];
int length = 0;
while((length= is.read(buffer)) > 0){
os.write(buffer, 0, length);
}
is.close();
os.close();
}
return SUCCESS;
}
}
------------------------------------------------------------------------------------------------------------
上传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>
<package name="default" extends="authority">
<action name="upload/*" method="{2}" class="{1}Action">
<interceptor-ref name="upload">
配置允许上传的文件类型,多个用","分隔
<param name="allowedTypes">
image/bmp,image/png,image/gif,image/jpeg,image/jpg,image/x-png, image/pjpeg
</param>
配置允许上传的文件大小,单位字节
<param name="maximumSize">102400</param>
</interceptor-ref>
<interceptor-ref name="defaultStack" />
<result name="success">/success.jsp</result>
</struts>
------------------------------------------------------------------------------------------------------------
下载jsp
---------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
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>
<base href="<%=basePath%>">
<title>My JSP 'down.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
测试检验test <br>
<a href="downloadCenter/execute.do?fileName=${fileName}" >下载中心</a>
</body>
</html>
--------------------------------------------------------------------------------------------------------------------------------
下载action
----------------------------------------------------------------------------
public class DownloadCenterAction extends ActionSupport {
String inputName = "inputStream";
String fileName;
public String getFileName() {
//从页面获取文件名
fileName = getRequest().getParameter("fileName");
String downFileName =fileName ;
try {
//中文文件名也是需要转码为 ISO8859-1,否则乱码
downFileName = new String(fileName.getBytes("ISO8859-1"), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return downFileName;
}
public InputStream getDownloadFile(){
try {
InputStream in = ServletActionContext.getServletContext().getResourceAsStream("upload/"+fileName );
System.err.println(in);
return in;
} catch (Exception e) {
return null;
}
}
public String execute() throws Exception {
//调用相关业务逻辑方法,动态设置相关下载信息
//contentType = "application/octet-stream;charset=ISO8859-1";
return SUCCESS;
}
}
------------------------------------------------------------------------------------------------------------
下载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>
<!--下载中心 -->
<package name="download_center" extends="authority">
<action name="*/*" method="{2}" class="{1}Action">
<result name="success" type="stream">
<!-- 设置内容类型 -->
<param name="contentType">application/octet-stream;charset=ISO8859-1</param>
<!-- 设置下载文件的名字 attachment:作为附件,filename=:指定下载文件名-->
<param name="contentDisposition">attachment;filename="${downFileName}"</param>
<!-- 设置下载文件的输入流对应的方法 downloadFile对应DownloadAction中的getDownloadFile()-->
<!--对应的getDownloadFile类中的getDownloadFile方法-->
<param name="inputName">downloadFile</param>
<!-- 指定下载文件的缓冲大小 -->
<param name="bufferSize">4096</param>
</result>
</action>
</package>
</struts>
------------------------------------------------------------------------------------------------------------
http://yitong.xiaodoutao.com/
分享到:
相关推荐
总结来说,实现Struts2批量上传文件涉及到的技术点包括Struts2拦截器、Apache Commons FileUpload、Action类的文件处理以及前端的文件验证。通过这些技术,我们可以创建一个稳定且功能完备的文件上传系统,既能处理...
本项目实现了使用Struts2进行文件批量上传的功能,这涉及到几个关键的技术点,包括文件上传组件的选择、前端表单设计、后端处理逻辑以及存储策略。 1. **文件上传组件**:在Struts2中,我们通常使用`Commons ...
Struts2文件批量上传是Java Web开发中常见的一种功能,主要应用于网站后台处理大量用户上传的文件,如图片、文档等。Struts2是一个强大的MVC框架,它提供了丰富的功能来支持文件上传操作,包括单个文件上传和批量...
本文将深入解析Struts2批量上传机制,包括其工作原理、代码实现细节以及如何在JSP页面和Action层进行集成。 #### 二、Struts2批量上传原理 Struts2框架利用了Apache Commons FileUpload组件来处理文件上传请求。当...
在Struts2中,批量上传通常涉及到`List<File>`或`List<Part>`类型的属性,以接收多个文件。用户可以选择多个文件,然后这些文件会被一起发送到服务器。在Action中,你需要遍历这个列表并保存每个文件。 例如,批量...
本文将详细介绍如何在Struts2框架下实现批量上传与文件下载,并解决中文乱码问题。 一、Struts2文件上传 1. 配置Struts2文件上传支持: 在struts.xml配置文件中,我们需要添加`<constant>`元素来设置允许上传的...
在这个场景中,我们讨论的是如何在Struts2中实现图片和文件的批量上传,并且在上传过程中显示进度条。 批量上传是指用户可以一次性选择多个文件进行上传,而不仅仅是一个文件。这通常需要前端界面支持多选文件的...
Struts2是一个强大的Java web应用程序框架...以上就是关于"Struts2批量上传文件"的基本实现和相关知识点,希望对你有所帮助。在实际项目中,根据具体需求,可能还需要考虑性能优化、并发处理以及文件的版本控制等问题。
总之,Struts1实现文件批量上传涉及前端表单设计、ActionForm的定义、Struts配置以及后台Action的处理。通过这些步骤,我们可以构建一个完整的文件上传系统,让用户能够方便地上传多个文件到服务器。
Struts2和Ajax技术结合可以实现用户界面与服务器之间的异步通信,从而提供更好的用户体验,尤其是在处理批量文件上传这样的任务时。在这个项目中,我们利用Struts2的Action和Ajax的异步特性来创建一个简单的批量文件...
在Struts2中,文件上传是常见的功能之一,特别是批量上传,可以处理用户一次性上传多个文件的需求。下面将详细介绍Struts2实现文件批量上传的相关知识点。 1. **Struts2的ActionContext与FileUpload插件** Struts2...
在Struts2框架中实现批量下载功能,是一个高级且实用的技术点,主要涉及到文件操作、流处理以及压缩算法的应用。本文将深入解析Struts2批量下载的实现原理及具体步骤,帮助开发者更好地理解和掌握这一技术。 ### ...
总的来说,Struts批量上传文件涉及到前端表单的正确配置、`ActionForm`的设计、`struts-config.xml`的配置以及Action类中处理文件上传的方法实现。通过以上步骤,你可以构建一个基本的Struts批量上传文件系统。在...
3. **配置Struts2**:在Struts2的配置文件(struts.xml)中,我们需要为批量提交的Action定义一个映射。 ```xml <result name="success">/success.jsp <result name="input">/input.jsp ``` 4. **处理请求**:...
本篇文章将深入探讨如何在Struts2.3环境下实现多文件的批量上传和下载。 首先,我们需要理解文件上传的基本原理。在HTTP协议中,文件上传通常通过表单的`<input type="file">`元素实现,然后服务器端的框架负责解析...
struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步...
标题 "SWFupload_struts1.rar_java 批量上传_struts1批量下载_swfupload struts1" 提供的信息表明,这是一个与Java编程语言、Struts1框架以及SWFUpload工具相关的项目或教程。SWFUpload是一个流行的老牌JavaScript和...
3. 在struts2的Action通过2种不同的实现方法返回json格式的字符串。 4. 针对商品实现简单无刷新上传与下载 4. 批量导入数据采用的是导入test文件夹下的测试压缩包upload.rar上传到服务器的临时目录,然后利用WinRar....
2. **批量上传**: 批量上传意味着用户可以一次选择并上传多个文件。这可以通过在表单中使用多个`<input type="file">`元素来实现,每个元素对应一个待上传的文件。在Action类中,需要对应数量的File字段来接收这些...
5. **文件上传测试**:除了命令执行,某些Struts2漏洞也可能允许恶意文件上传,该工具可能包含对这一风险的检测。 6. **教育与预防**:通过使用此工具,管理员不仅可以了解当前系统的安全状况,还能学习如何防止...