- 浏览: 1070521 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (639)
- 服务器配置篇 (58)
- hibernate篇 (14)
- spring篇 (33)
- struts篇 (28)
- JS篇 (46)
- 其他技术篇 (46)
- 数据库集群配置 (6)
- JAVA基础相关 (48)
- 分布式框架HadHoop的应用 (2)
- FLEX篇 (8)
- SQLSERVER技术 (32)
- Android学习 (13)
- amchart学习笔记 (1)
- openfire+smark搭建即时通讯 (9)
- Linux学习 (18)
- Oracle数据库 (15)
- 网站优化技术 (12)
- mysql数据库 (2)
- 项目学习总结 (18)
- 工具类(JAVA) (12)
- 工具类(JS) (2)
- 设计模式 (10)
- Lucene学习 (24)
- EJB3学习 (6)
- Sphinx搜索引擎 (3)
- 工作中用到的软件小工具 (5)
- .NET (49)
- JAVA 连接SQLSERVER2008步骤 (1)
- MongoDB (19)
- Android手机开发 (3)
- Maven (6)
- vue (9)
- Shiro (4)
- mybatis (3)
- netty框架 (1)
- SpringCloud (3)
- spring-cloud (7)
- Git (1)
- dubbo (2)
- springboot (13)
- rocketmq (1)
- git学习 (2)
- kafka服务器 (2)
- linux (10)
- WEB系统辅助项目 (1)
- jenkins (2)
- docker (4)
- influxdb (3)
- python (2)
- nginx (1)
最新评论
-
jiangfuofu555:
这样数据量大,效率怎么样?
sqlserver 实现分页的前台代码 以及后台的sqlserver语句 -
w156445045:
博主请问下,如何做到实时的刷新呢,
另外我后台是Java 谢谢 ...
web 版本的汽车仪表盘,非常好看。还有各种图形 -
jackyin5918:
<transportConnector name=&qu ...
ActiveMQ的activemq.xml详细配置讲解 -
握着橄榄枝的人:
你这个不是spring1.x的吧
spring1.x使用AOP实例 -
xiaophai:
全乱套了!
openfire+spark搭建完美的及时通讯
1.jsp页面
思路:根据你所选择的下拉框中的个数,显示多个文件上传列表。
<%@ page contentType="text/html;charset=gbk"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested"%>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<html>
<head>
<title>客户文档管理</title>
<meta http-equiv="Content-Type" content="text/html;charset=gbk">
</head>
<body>
<br />
<form action="" method="post" enctype="multipart/form-data" name="thisForm">
<input type="hidden" name="ID">
<table border='0' cellpadding='4' align="center" cellspacing='1'
id="table1" class="table" width="550">
<tr>
<td nowrap class='tdrighttextred'>
文档上传:
</td>
<td class='td' colspan="3">
<select name="fileNum" size="1" onchange="addFile(this.value)">
<option value="0">
请选择文档个数
</option>
<c:forEach begin="1" end="50" var="i" step="1">
<option value="${i}">
${i}
</option>
</c:forEach>
</select>
<c:forEach begin="1" end="50" var="i" step="1">
<div style="width:100px"><input type="file" name="referenceFormFile[${i-1}]"/></div>
</c:forEach>
<input type='button' class="tbbutton" value='重选' id="filebutton"
onclick='ResetFile()'>
</td>
</tr>
<tr class="trcenter">
<td height="25" colspan='4' nowrap>
<input name="savebutton" id="savebutton" type="button" class="tbbutton" value="保 存" onclick="SubmitButton(this,'add');">
<input name="closebutton" id="closebutton" type="button" class="tbbutton" value="关 闭" onclick="WinClose();">
</td>
</tr>
</table>
</form>
</body>
</html>
<script language="javascript" type="text/javascript">
initPage();
function initPage()
{
<!--初始的时候,首先将“重置,和文件选择列表隐藏,文件列表默认为50个”-->
document.getElementById('filebutton').style.display='none';
for(var i=0;i<=49;i++)
{
document.getElementById("referenceFormFile["+i+"]").style.display="none";
}
}
function addFile(n)
{
<!--当选择了文件个数后,隐藏文件选择框,出现上传文件列表-->
document.thisForm.fileNum.style.display='none';
document.getElementById("filebutton").style.display='';
if(n>0&&n<=50){
for(var i=0;i<n;i++){
document.getElementsByName("referenceFormFile["+i+"]")[0].style.display='';
//document.getElementById("referenceFormFileSpan["+i+"]").style.display='';
}
}else{
document.thisForm.fileNum.style.display='';
}
}
function ResetFile()
{
document.thisForm.fileNum.style.display='';
document.getElementById("filebutton").style.display='none';
document.thisForm.fileNum.options[0].selected=true;
for(var i=0;i<=49;i++){
document.getElementsByName("referenceFormFile["+i+"]")[0].style.display='none';
//document.getElementById("referenceFormFileSpan["+i+"]").style.display='none';
}
}
function SubmitButton(obj,SubmitFlag)
{
if(SubmitFlag=="add"){
document.thisForm.action="/BossPractice/CusFileAction.do";
document.thisForm.submit();
}
}
</script>
2.上传的JAVA文件
package com.bossfile;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;
public class CusFileAction extends Action {
public ActionForward execute(ActionMapping map, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// 定义局部变量
String ID = "", submitButtonFlag = "", procMsg = "", fileExt = "";
int PhotosCount = 0;
CusFileForm actionform = (CusFileForm) form;
try {
FormFile formFile[] = actionform.getReferenceFormFile();
String path = "d://upload";
File file = new File(path);
file.mkdirs();
for (int i = 0; i < Integer.parseInt(actionform.getFileNum()); i++) {
if (formFile[i].getFileSize() != 0) { // 判断是否为空
fileExt = formFile[i].getFileName().substring(
formFile[i].getFileName().lastIndexOf("."),
formFile[i].getFileName().length()).toLowerCase();
PhotosCount += 1;
String filename = actionform.getId() + "-" + PhotosCount
+ fileExt;
uploadFile(path, formFile[i], filename);
}
}
} catch (Exception e) {
procMsg = e.getMessage();
System.out.print(e.getMessage());
e.printStackTrace();
} finally {
}
return null;
}
/**
* 文件上传功能
*/
public void uploadFile(String path, FormFile myFile, String fileName) {
try {
byte[] fileData = myFile.getFileData();
FileOutputStream fos = new FileOutputStream(new File(path
+ fileName));
fos.write(fileData);
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
发表评论
-
java spring整合websocket教程
2018-03-30 14:30 687在javaweb项目开发中,我们经常可能需要websocke ... -
myeclipse 项目之间类进行引用
2014-11-19 15:54 965相关解决方案: eclipse的Web项目引用方式:(其实相 ... -
myeclipse8 每次启动内存都不够用的解决方案
2014-11-11 15:34 771最近可能由于公司项目大了,启动MyEclipse后经常提示 ... -
web项目集成log4j
2014-11-06 12:39 723Log4j基本使用方法 Log4j由三个重要的组件构成:日 ... -
使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务
2011-10-25 14:09 1528RESTful Web 服务简介 REST 在 2000 年 ... -
确定操作系统位计数(64位还是32位(X86))
2011-09-30 08:36 1248在此部分查找计算机 ... -
解决“无法删除 指定的文件名无效或太长”的问题
2011-09-16 14:07 2524解决“无法删除 指定的文件名无效或太长”的问题 ... -
网站应用通过139邮箱发送短信做到日志提醒功能
2011-09-15 09:36 1824首先在139注册一个邮箱,然后再邮箱设置中设置收到邮件通过短信 ... -
javamail发送邮件遇到的问题
2011-09-15 09:32 1206今天在用myeclipse写mial功能的时候,想调试一下程序 ... -
http协议的学习笔记
2011-03-01 10:56 1688HTTP请求行 格式:请求 ... -
Logback用户手册中文版.pdf
2011-02-14 16:57 2029Logback用户手册中文版.pdf -
JAVA编写的预警系统
2011-02-10 11:00 6340预警系统 <!-- start content --& ... -
Mediawiki 简明架设指南
2011-02-10 10:03 4654在 Debian/Linux 下 1. 安装程序 sh ... -
xsl 常用.jsp
2011-02-10 09:28 1624现在用的都是有规分律数据, 特殊的数据用XSL. DOM4J ... -
SVN 入门指南
2011-01-14 11:17 1003SVN 入门指南 -
FreeMaker中文手册
2011-01-14 11:15 1050FreeMaker中文手册 -
查看某个网段具体哪些IP没有被使用的命令
2010-11-29 09:01 2907通过运行cmd然后在DOS命令下运行下面程序,表示查看192. ... -
xsl 取数据的时候,当用for-each循环取得数据,怎么取第一行的数据
2010-11-08 11:35 2358需求,打印表格的时候,用for-each 来取得数据,当取到第 ... -
项目过程中,对于绝对路径和相对路径的总结
2010-09-11 09:20 12441.基本概念的理解 绝对路径:绝对路径就是你的主页上的文 ... -
mysql经典语句
2010-09-09 18:18 1255show databases;show tables from ...
相关推荐
在Java开发中,多文件上传是一项常见的功能,尤其在Web应用中,用户可能需要一次性上传多个文件,如图片、文档等。本知识点将详细介绍如何在Java中实现这一功能,以及结合Flash实现上传界面并显示上传进度条。 1. *...
在多文件上传场景下,Flash允许用户一次性选择多个文件,提供了一种友好的用户体验。Flash上传工具通常通过ActionScript(Flash的编程语言)编写,它可以控制文件的选取、上传过程,并且可以显示上传进度,提升用户...
综上所述,Flash实现的多文件上传涉及了前端Flash技术与后端服务器交互的多个层面,包括文件选择、队列管理、上传进度监控以及服务器端的文件处理。尽管Flash已经过时,但了解这种技术可以帮助我们更好地理解早期Web...
"C# 使用 WebRequest 实现多文件上传" C# 使用 WebRequest 实现多文件上传是.NET Framework 中的一种常见的网络编程技术。通过使用 WebRequest 类...在实际应用中,我们可以根据需要选择合适的方法来实现多文件上传。
在“使用layui实现多文件列表上传”这个项目中,主要涉及到了layui的文件上传功能,这在网页应用中是非常常见且实用的功能,尤其对于需要用户提交多份文件的场景。 首先,layui的文件上传组件是基于HTML5的File API...
综上所述,“Ext3.0实现多文件上传.rar”这个压缩包中的代码示例可能涵盖了以上技术点,提供了一个完整的多文件上传解决方案,包括前端的交互设计和后台的文件处理逻辑。通过学习和理解这个示例,开发者可以更好地...
传统的文件上传方式通常只允许用户选择一个文件,但随着技术的发展,现在我们可以实现多选文件上传功能,让用户能够一次性上传多个文件,极大地提高了用户体验。本教程将探讨如何在网页中实现多选文件上传,基于提供...
综上所述,使用Flex实现多文件上传涉及了文件选择、HTTP请求、进度监控等多个环节。通过合理地组织代码和优化用户体验,我们可以创建一个功能完备且用户友好的多文件上传功能。在实际开发中,可能还需要根据具体需求...
1.能够对多个文件进行上传(可以选择上传文件个数,也即上传文件个数不定) 2.能够对上传路径进行配置文件指定(upload.properties),使用了一些类似单例模式的静态代码块 3.Struts2进行下载处理,能对上传的所有...
在.NET MVC框架中,实现多文件上传并展示上传进度条是一项常见的需求,这不仅可以提高用户体验,还能让用户了解文件上传的状态。下面将详细讲解如何通过WebUploader插件来实现这一功能。 1. **WebUploader简介** ...
总之,在uniapp中实现文件上传功能涉及了文件选择、文件类型处理和Base64编码转换等多个环节。理解并熟练掌握这些知识点对于开发跨平台应用至关重要,特别是对于需要处理多种文件格式的应用来说。在实际开发过程中,...
本篇文章将详细讲解如何在Qt中自定义实现一个文件选择框,并修改其样式以保持与桌面应用的整体设计一致。 首先,我们需要了解Qt中的QFileDialog类,它是用于打开和保存文件的标准对话框。然而,QFileDialog的默认...
"一次选择多个文件实现上传功能"是一个常见的需求,它提高了用户体验,减少了用户操作步骤。在本篇中,我们将深入探讨如何通过Uploadify和Struts2框架来实现这一功能。 首先,Uploadify是一个基于JavaScript和Flash...
"uploadify"是一款基于jQuery的插件,它为网页提供了强大的文件上传功能,包括一次选择多个文件和批量上传的能力。这些特性极大地提高了用户上传文件的效率,减轻了他们的操作负担。 "uploadify"的多选功能允许用户...
利用java图形化界面和网络编程相结合实现的--文件上传。 运行步骤: (1)分别运行工程两个包中的两个.java文件(UploadClient.java和UploadServer.java)分别会弹出“上传客服端”和“上传服务器”两个窗口。 ...
在客户端,可以并行发起多个文件上传请求,利用多线程或多任务技术,如Task Parallel Library(TPL),来同时处理多个文件。 4. **Log4Net 日志记录**: Log4Net是Apache的一个开源项目,提供了一套强大的日志记录...
综上所述,实现Android的文件上传和多选、单选文件功能涉及到了文件选择器的定制、文件操作、网络通信等多个方面。通过合理的设计和优化,可以提供高效、安全的文件操作体验。在实际开发中,要不断迭代和优化,确保...
Bootstrap-fileinput 是一个流行的、功能丰富的jQuery插件,专门用于实现美观且实用的文件上传功能,特别是对于多文件上传和预览。本教程将深入探讨如何使用Bootstrap-fileinput来实现这一功能。 【描述】:...
首先,确保`enctype="multipart/form-data"`已经设置,这是处理文件上传所必需的。 1. 检查是否有多文件上传: ```php if(isset($_FILES['uploads']) && count($_FILES['uploads']['name']) > 0) { // 多文件...
SWFUpload是一个开源的JavaScript库,它允许网页在Flash的支持下实现高级的文件上传功能,包括多文件选择、进度条显示、预览等。在Web开发中,尤其是在处理大量图片或者文档上传时,SWFUpload提供了高效且用户体验...