- 浏览: 168367 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
单v纯微笑:
您好,能把dbsyn_config_quartz这个表发给我一 ...
定时器(quartz+spring)读取数据库配置 -
fenglingabc:
我用了comet4j 结果因为推送比较频繁(基本上1秒一次), ...
comet4j轮询 -
NeverGiveUpToChange:
nice,还不错哦,谢谢啦!!!
springmvc上传 -
ralfsqual:
自定义的线程中的逻辑每次都是被执行两次,不知道为什么啊。比如打 ...
comet4j轮询 -
goll2012:
我倒,原来要配置tomcat。。。果然是高手,对于只看不动手的 ...
comet4j轮询
以前做过单文件的上传 现在公司有需求要做多文件上传。我也是参考网上的资料,其实原理很简单,改用数组就得了。我是基于struts2开发的 首先写个action
package org.usc.file;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import org.usc.utils.UploadConfigurationRead;
import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport
{
/**
*
*/
private static final long serialVersionUID = 1L;
private File[] upload;// 实际上传文件
private String[] uploadContentType; // 文件的内容类型
private String[] uploadFileName; // 上传文件名
private List<UploadFiles> uploadFiles = new ArrayList<UploadFiles>();
public String execute() throws Exception
{
try
{
String targetDirectory = ServletActionContext.getServletContext()
.getRealPath("/"+ UploadConfigurationRead.getInstance().getConfigItem("uploadFilePath").trim());// 获得路径
System.out.println(targetDirectory);
for (int i = 0; i < upload.length; i++)
{
String fileName = uploadFileName[i];// 上传的文件名
String type = uploadContentType[i];// 文件类型
String realName = UUID.randomUUID().toString()+ getExt(fileName);// 保存的文件名称,使用UUID+后缀进行保存
File target = new File(targetDirectory, realName);
FileUtils.copyFile(upload[i], target);// 上传至服务器的目录,一般都这样操作,
// 在把路径写入数据库即可
UploadFiles uf = new UploadFiles();// 创建文件
uf.setUploadContentType(type);
uf.setUploadFileName(fileName);
uf.setUploadRealName(realName);
uploadFiles.add(uf);// 添加到需要下载文件的List集合中
// uploadRealName[i]=UUID.randomUUID().toString();
// System.out.println("uploadRealName:"+uploadRealName[i]);
// for(File file:upload)
// {
// System.out.println("filename:"+file.getName());
// }
// System.out.println("filename:"+fileName);
// System.out.println("Ext:"+getExt(fileName));
// System.out.println("Type:"+type);
// System.out.println(target.getPath());
}
ServletActionContext.getRequest().setAttribute("uploadFiles",
uploadFiles);
} catch (Exception e)
{
e.printStackTrace();
addActionError(e.getMessage());
return INPUT;
}
return SUCCESS;
}
public File[] getUpload()
{
return upload;
}
public void setUpload(File[] upload)
{
this.upload = upload;
}
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 static String getExt(String fileName)
{
return fileName.substring(fileName.lastIndexOf("."));
}
}
然后就是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="utf8" />
<!-- 这个是配置上传文件大小 默认的是2M 因为需求我改成10M-->
<constant name="struts.multipart.maxSize" value="104857600" />
<package name="file" namespace="/" extends="struts-default">
<action name="showUpload">
<result>/upload.jsp</result>
</action>
<action name="upload" class="org.usc.file.UploadAction">
<result name="input">/upload.jsp</result>
<!-- <result name="success">/upload_success.jsp</result>-->
<result name="success">/download.jsp</result>
</action>
<action name="download" class="org.usc.file.DownloadAction">
<result name="success" type="stream">
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<param name="inputName">downloadFile</param>
</result>
</action>
</package>
</struts>
最后就是jsp页面了 其中用了js动态生成文本框
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>upload</title>
</head>
<body>
<script type="text/javascript">
<!--addMore函数可以提供上传多个文件上传-->
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 = "upload";
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>
<!--<h3><font color="red">上传文件类型后缀为doc,ppt,xls,pdf,txt,java,每个文件大小不能大于50M</font></h3>-->
<table align="center" width="50%">
<tr>
<td>
<!-- <s:actionerror cssStyle="color:red"/>-->
<s:fielderror cssStyle="color:red" />
</td>
</tr>
</table>
<s:form action="upload.action" theme="simple" method="post"
enctype="multipart/form-data">
<table align="center" width="50%" border="1">
<tr>
<td>
上传文件
</td>
<td id="more" >
<s:file name="upload"></s:file>
<input type="button" value="上传更多..." onclick="addMore()">
</td>
</tr>
<tr>
<td>
<s:submit value=" 确认 "></s:submit>
</td>
<td>
<s:reset value=" 重置 "></s:reset>
</td>
</tr>
</table>
</s:form>
</body>
</html>
发表评论
-
生成webservices代理类方法
2013-12-15 21:06 716根据wsdl成生客户端信息: 在D盘下新建一个src目录 ... -
自动补全-jquery.autocomplete.js
2013-07-08 13:58 13767研究了三天自动补全jquery.autocomplete ... -
js设置cookie
2013-06-17 13:52 1315这几天用到cookie,所以在网上搜了一下js设置cook ... -
java 获取mac地址
2013-03-20 14:20 1399一下是用java来获取mac地址,一般可用作接口权限控制 ... -
oracle数据库-使用proxool进行中断重连
2013-02-17 11:03 3196(1)proxool.xml配置项参数 <?xml ... -
jsp自定义错误页
2013-02-17 11:00 990为了给浏览者一个友好的错误提示页面,我们可以象IIS一样自定义 ... -
Spring对Hibernate事务管理的配置
2013-01-09 15:11 1003声明式事务配置主要分以下几步: 声明式事务配置 •配置 ... -
md5
2013-01-08 10:37 1104MD5是一种常用的加密算法,在项目中经常用到,我参考了网上一些 ... -
axis 自动生成webservices客户端代理类
2012-11-18 11:16 28651.新建wsdltojava.bat文件,放到C盘,文件内容如 ... -
定时器(quartz+spring)读取数据库配置
2012-08-21 15:37 19495今天把项目中的一部分移出来,主要是实现定时器任务,定时 ... -
ztree 小实例
2012-08-03 09:55 2521今天搞了一下ztree这个开源的东东,感觉很不错,很强大 ... -
java 读取.properties文件 最简单方式
2012-07-25 08:45 1116param.properties 内容如下: url ... -
Quartz入门示例
2012-05-14 17:28 1007文章出处 http://www.cnblogs.com ... -
struts2.2.3 + spring3.1.0 + mybatis3.1.0集成简单demo
2012-04-19 09:25 17591、导入相应的jar包 -
Struts2访问request,session,application的四种方式
2012-04-19 09:10 1575方式1--》访问Map类型的: package cn ... -
struts.xml动态返回结果
2012-04-11 15:51 1059今天有个难题,被我解决啦。详细的问题我就不多说了,用到的 ... -
springmvc上传
2012-04-05 15:55 5385最近一直在网上看资料,今天我在网上发现一个demo,是 ... -
jsoup解析网页
2012-03-31 09:24 4434jsoup功能很强大,我用它来解析网页很轻松。但我只用了 ... -
解析百度输入框(在线查询)
2012-03-28 14:51 1888百度大家都会用,但是相信大家用百度的时候在输入框中随便输 ... -
ajax struts实现在线查询功能
2012-03-27 11:58 1200我用的是ajax 和struts实现的一个在线查询功能, ...
相关推荐
在这个"C# .NET FileUpload 多文件上传例子"中,我们将探讨两种主要的方法,帮助你理解和掌握这一关键功能。 首先,我们要知道ASP.NET中的`<asp:FileUpload>`控件是实现文件上传的核心组件。它可以允许用户从本地...
"FileUpload多文件上传(2.0)"这个主题聚焦于2.0版本的ASP.NET中,如何使用C#来实现用户友好的多文件上传功能。下面将详细阐述这一技术的关键点。 首先,让我们了解`FileUpload`控件。在ASP.NET中,`FileUpload`控件...
`jsp|ajax+fileupload多文件上传逐一显示进度条`这个主题涉及到的是一个高级的前端技术实现,它结合了JavaServer Pages(JSP)、Asynchronous JavaScript and XML(AJAX)以及FileUpload库,为用户提供了一种动态、...
在IT行业中,多文件上传组件是网页应用中不可或缺的一部分,特别是在大数据时代,用户常常需要上传大量...`jQuery+Alanx+FileUpload` 组合提供了一套强大且灵活的工具,使得在Web应用中实现多文件上传变得轻松简单。
"FileUpload_php"是一个专门为PHP开发的上传组件,其设计灵感来源于163编辑器的上传功能,旨在提供简单易用且高效的文件上传解决方案。 "FileUpload_php"组件的核心功能包括: 1. **多文件选择**:允许用户通过...
FileUpload 文件上传组件的ASP.NET实例,基于主副窗口的上传程序,利用线程提升上传速度。本插件可支持多文件上传,为了提升上传体验,这里使用了AjaxControlToolkit.dll、... ASP.NET中实现FileUpload多文件上传
在Java Web开发中,文件上传是一项常见的功能,Apache Commons FileUpload库为开发者提供了一种方便、灵活的方式来处理HTTP请求中的多部分数据,包括文件上传。本篇将详细讲解如何使用Commons FileUpload来实现文件...
fileupload上传类,自己写的,简单易懂
综上所述,.NET FileUpload控件的自动上传功能结合预览和安全控制,能够为用户提供便捷且安全的文件上传体验。在Visual Studio 2012中实现这些功能,需要对ASP.NET、JavaScript和服务器端文件操作有深入的理解。在...
使用fileupload组件实现文件上传功能 FileUpload组件是Apache提供的一款文件上传组件,能够帮助我们轻松实现文件上传功能。下面我们将详细介绍使用FileUpload组件实现文件上传功能的步骤和要点: 首先,需要引入两...
本实现抽取了apache commons.fileupload的最基本代码,组合成一个简单的文件上传组件,对parseRequest方法进行了改进,对于文件,直接存储到指定的上传目录,加快了上传速度。使用本程序时,注意上传端的参数设置,...
Struts1.2是Apache的一个开源框架,主要用于构建MVC(模型-视图-控制器)架构的Web应用程序,而Commons-Fileupload则是Apache Commons项目中的一个子模块,专门处理HTTP请求中的多部分数据,也就是文件上传。...
本示例中的"fileUpload文件上传组件例子"提供了一个自定义实现的文件上传组件,旨在帮助开发者理解并掌握这一关键功能的实现方式。 首先,我们需要了解文件上传的基本原理。在HTML中,`<input type="file">`标签...
在 ASP.NET Web 应用程序中,经常需要实现文件上传功能,这可以通过使用 `FileUpload` 控件来完成。本文将详细介绍如何使用 `.NET` 中的 `FileUpload` 控件进行单个文件的上传,并存储文件的相关信息,如文件名、...
Apache Commons FileUpload是Apache软件基金会开发的一个开源组件,专门处理HTTP请求中的多部分数据(multipart/form-data),这是文件上传的标准格式。该库提供了解析请求、存储上传文件和处理异常的能力。 **二、...
Apache Commons FileUpload 就是一个专门用于处理HTTP请求中的多部分数据(multipart/form-data),即文件上传的库。这个库为Java开发者提供了一个简单而强大的API,能够方便地实现文件上传功能。 `commons-...
### Commons-FileUpload 实现文件上传下载 #### 知识点概述 Commons-FileUpload 是 Apache 提供的一个用于处理 HTTP 文件上传的组件。它基于 Servlet 规范,并且能够解析来自 `multipart/form-data` 编码类型的 ...
"fileupload 大文件上传"这个主题主要涉及如何在Web应用中处理大文件的上传问题,确保用户能够安全、高效地传输大容量的文件。下面我们将深入探讨相关知识点。 一、大文件上传的挑战 1. 浏览器限制:传统的HTTP表单...
这个组件提供了一个简洁的API,使得开发者能够轻松地在Java应用中处理由浏览器发送的多部分(multipart)HTTP请求,即通常的文件上传功能。 ### 一、环境配置 1. **安装Tomcat**:确保你已经安装了Tomcat服务器,...
5. **多文件上传**:ASP.NET也支持多文件上传,这需要使用多个FileUpload控件,或者利用HTML5的`multiple`属性,让用户一次选择多个文件。 6. **前端验证**:在客户端进行验证可以提供更好的用户体验,例如,可以...