多文件上传
第一步:编写上传的页面
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'upload.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">
-->
<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="-";
button.onclick=function(){
td.removeChild(br);
td.removeChild(input);
td.removeChild(button);
}
td.appendChild(br);
td.appendChild(input);
td.appendChild(button);
}
</script>
</head>
<body>
<s:form action="/system/fileUpload.do" method="post" enctype="multipart/form-data">
<%--此处的action应根据是否有命名空间来添加。本例子在system的命名空间下--%>
<table align="center" width="60%" border="1">
<tr>
<td>
文件名称: <input type="text" name="title"/>
</td>
</tr>
<tr>
<td>
选择上传的文件:
</td>
<td id="more">
<%--<s:file name="file" label="选择上传的文件"></s:file>--%>
<input type="file" name="file">
<input type="button" value="+" onclick="addMore()"/>
</td>
</tr>
<tr>
<td>
</td>
<td>
<s:submit value="上传" align="center"></s:submit>
</td>
</tr>
</table>
</s:form>
</body>
</html>
第二步:编写文件上传的action类
package com.pominfo.demo.system.action;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ActionContext;
import java.sql.*;
import java.text.SimpleDateFormat;
import javax.sql.*;
import javax.swing.JOptionPane;
import javax.naming.*;
import java.util.*;
import java.util.regex.Pattern;
import org.apache.struts2.ServletActionContext;///获取reqeust response session对象的包
import java.util.Date;
import java.io.*;
/*
* @author qihuasun
* FileUploadAction类 实现多文件上传
*/
public class UploadFileAction extends ActionSupport
{
private List<File> file; //文件
private String title;//文件标题
private List<String> fileFileName;//文件名称
private List<String> fileContentType; //文件类型
public List<File> getFile() {
return file;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public void setFile(List<File> file) {
this.file = file;
}
public List<String> getFileContentType() {
return fileContentType;
}
public void setFileContentType(List<String> fileContentType) {
this.fileContentType = fileContentType;
}
public List<String> getFileFileName() {
return fileFileName;
}
public void setFileFileName(List<String> fileFileName) {
this.fileFileName = fileFileName;
}
/**
* 动态上传文件
* @return
* @throws Exception
*/
public String Upload() throws Exception {
InputStream is=null;
OutputStream ops=null;
//1. 遍历文件
for(int i=0;i<file.size();i++){
try{
is=new FileInputStream(file.get(i));
//2.获取路径
String root=ServletActionContext.getRequest().getRealPath("/upload");
//将文件名称放入的根目录下的upload文件下
File destFile=new File(root+"/",this.getFileFileName().get(i));
ops=new FileOutputStream(destFile);
byte [] b=new byte[1024];
int length=0;
while((length=is.read(b))>0){
//将数据写入流
ops.write(b,0,length);
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
ServletActionContext.getRequest().setAttribute("page",file.size());
is.close();
ops.close();
}
}
return "success";
}
}
第三步:配置struts。Xml文件。
<package name="system" extends="struts-default" namespace="/system" >
<action name="fileUpload" class="com.pominfo.demo.system.action.UploadFileAction" method="Upload">
<!-- 定义文件上传的过滤器 -->
<interceptor-ref name="fileUpload"><!—此处为fileUpload。与action的name值相同只是巧合 -->
<param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg,application/msword,audio/x-mpeg,text/html,text/plain</param>
<param name="maximumSize">12000000</param><!-- 设定文件的大小-->
</interceptor-ref>
<!-- 定义默认的拦截器栈 -->
<interceptor-ref name="defaultStack"></interceptor-ref>
<result name="success">/succ.jsp</result>
<result name="input">/upload.jsp</result>
<result name="error">/upload.jsp</result>
</action>
</package>
分享到:
相关推荐
在Java开发中,多文件上传是一项常见的功能,尤其在Web应用中,用户可能需要一次性上传多个文件,如图片、文档等。本知识点将详细介绍如何在Java中实现这一功能,以及结合Flash实现上传界面并显示上传进度条。 1. *...
多文件上传功能则意味着用户可以一次性选择并上传多个文件,大大提高了数据传输的效率。 【详细实现】 1. **引入资源**:首先,你需要在HTML文件中引入Bootstrap和Bootstrap-fileinput的相关CSS和JS文件。这些文件...
在EXTJS中,`MultiFileUploadField` 是一个组件,它允许用户在单个操作中选择并上传多个文件,极大地提升了用户交互体验。这个功能对于处理大量文件上传的场景非常有用,比如在内容管理系统、图像库或者文件分享平台...
这个源码可能提供了一种实现方式,允许用户同时上传多个文件,并且带有进度条显示,用户可以随时停止或删除正在上传的文件。这样的功能提高了用户体验,因为它允许用户批量处理文件,而无需逐一操作。 在实现多文件...
基于SpringBoot的文件上传系统,前后端分离,单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传 项目经过严格测试,确保可以运行! 采用前后端分离的方式进行开发,实现了几种常用的文件上传功能...
"JSP多文件上传"是一个常见的需求,特别是在文件分享、在线教育或文档管理等场景。这个功能允许用户一次性选择并上传多个文件,提高了用户体验,减少了多次点击和等待时间。 实现JSP多文件上传,我们需要了解以下几...
对于初学者来说,理解并实现多文件上传是一项重要的技能,它可以帮助你构建交互性强、功能完善的Web应用程序。在这个"C# .NET FileUpload 多文件上传例子"中,我们将探讨两种主要的方法,帮助你理解和掌握这一关键...
在多文件上传的场景中,JSP主要负责接收和处理来自客户端的文件上传请求。 在"MultifileUploadDemo"中,我们利用了Flash作为前端的上传组件。Flash因其支持多媒体和交互性而被广泛用于创建丰富的互联网应用程序。在...
在本项目中,"javascript+HTML5 多文件上传(插件)多进度条显示"是一个实现这一功能的实例,它允许用户选择并上传多个文件,并在上传过程中实时显示每个文件及整体的上传进度。下面将详细介绍这个技术实现的关键...
标题中的“Flash实现的多文件上传”指的是使用Adobe Flash技术来实现用户在Web页面上同时上传多个文件的功能。Flash在过去的网页开发中被广泛应用于多媒体交互和富互联网应用(RIA),其中包括文件上传功能,因为它...
这个功能通常在网页应用中用于让用户能够一次性上传多个文件,如图片、文档等,极大地提高了用户体验。 多文件上传通常涉及以下几个关键技术点: 1. **HTML5 File API**: 这是实现多文件上传的基础。File API允许...
多文件上传是指一次操作中上传多个文件的能力。这种功能常见于照片分享网站、文档管理应用等。实现多文件上传,通常有以下方法: 1. **HTML5 File API**:现代浏览器支持HTML5的File API,可以一次性选择并上传多个...
在IT行业中,多文件上传是一项常见的功能,尤其在网页应用和桌面软件中,它允许用户一次选择并上传多个文件,极大地提高了工作效率。本资源提供的是一款基于Eclipse开发的多文件上传组件,它可以帮助开发者轻松地...
在IT行业中,文件上传是网页应用中常见的功能之一,尤其在大数据时代,用户可能需要一次上传多个文件。"uploadify"是一款广泛使用的JavaScript插件,它使得多文件上传变得简单而高效。本示例代码是关于如何使用...
这里,我们主要关注"springMVC多文件上传需要的jar"这一资源,它包含了实现这一功能所必需的Java档案(JAR)文件。 首先,Spring MVC是Spring框架的一个模块,专门处理Web应用的请求和响应。它提供了模型-视图-控制...
在Java开发中,多文件上传是一项常见的功能,尤其在Web应用程序中,如用户需要上传图片、文档等附件。本示例提供了实现这一功能的具体代码和数据库相关资源,旨在帮助开发者快速构建自己的多文件上传功能。 首先,...
1. **多文件上传**:多文件上传是指用户可以在一次操作中选择并上传多个文件,而不是逐个上传。这提高了用户体验,减少了用户的交互次数。在HTML5中,`<input type="file" multiple>`标签被引入,使得浏览器支持多选...
在Web应用中,多文件上传功能通常用于让用户一次性上传多个文件,比如图片、文档等。ExtJS4提供了一种解决方案,允许用户通过一个交互式的界面来上传多个文件,并可以分别处理每个文件的上传状态。 **三、上传组件...
在现代Web应用中,用户可能需要一次性上传多个文件,例如图片、文档或视频。这个过程如果能实时显示每个文件的上传进度,将极大地提升用户体验。本文将深入探讨如何实现"多文件上传,并显示每一个的进度"这一功能,...