maven配置smartupload_用jspsmartupload实现Jsp多文件上传下载,并解...
此例子是基于jspsmartupload组件的,jspsmartupload是一个不错的上传下载组件,但对中文支持不足。若下载的文件名中有汉字,则浏览器在提示另存的文件名时,显示的是一堆乱码,让人看了很不舒服,为此,有人专门修改此组件,做了编码的转换工作,将文件名转换为UTF-8形式的编码形式。我用的是网上修改过的,已经可以支持中文,相信你也可以找到,如果需要,可以联系我,我会在第一时间发给你!jar down:
http://cid-75be94924ba7fb04.skydrive.live.com/self.aspx/Public/SmartUpload%5E_zh%5E_CN.jar
在网上找了很多相关资料,自己也添加了一些js代码,基本实现了动态添加删除多文件上传的功能,如果想要做得更完美,或者把文件上传下载信息存储到数据库等,那就自己去完善了,以下是所有的源代码:
(文件下载出于安全考虑是按流的方式来进行的,而不是直接给出文件下载路径地址,所以像迅雷等下载工具是不能下载的)
首先当然是上传下载的页面了,upfile.jsp
File Upload
function addFile(){
var upFile = '
';
document .getElementById ("files").insertAdjacentHTML("beforeEnd",upFile);
}
function deleteFile(){
var file = document .getElementById ("files").lastChild;
if(file == null)
return;
document .getElementById ("files").removeChild(file);
file = document .getElementById ("files").lastChild; //移除换行符
所以要移两次
document .getElementById ("files").removeChild(file); //如果在表格里面不加
就自动换行的,可以去掉,自己把握
}
基于jsp smart upload组件的文件上传下载
选择文件:
下载文件的名称:
上传文件UploadServlet类:
package com.xml.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jspsmart.upload.SmartUpload;
public class UploadServlet extends HttpServlet {
private ServletConfig config;
public UploadServlet() {
super();
}
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int count = 0; // 记录文件上传总个数
SmartUpload mySmartUpload = new SmartUpload();
mySmartUpload.initialize(config, request, response);
try {
// mySmartUpload.setAllowedFilesList("rar,htm,html,jar");//设置允许上传的文件
mySmartUpload.setDeniedFilesList("exe,jsp,asp");// 禁止上传的文件
mySmartUpload.setDenyPhysicalPath(true); // 拒绝物理路径
mySmartUpload.setMaxFileSize(5000000);// 设置允许上传文件最大为50000bytes
mySmartUpload.setTotalMaxFileSize(50000000);// 一次上传文件大小最多不超过5000000bytes
mySmartUpload.upload();
for (int i = 0; i < mySmartUpload.getFiles().getCount(); i++) {
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
String fileName = myFile.getFileName();
System.out.println("文件名:" + fileName);
}
count = mySmartUpload.save("/upload");
System.out.println(count + "文件已上传");
} catch (Exception e) {
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
public void init(ServletConfig config) throws ServletException {
this.config = config;
}
}
下载文件DownloadServlet类:
package com.xml.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
public class DownloadServlet extends HttpServlet {
private ServletConfig config;
public DownloadServlet() {
super();
}
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String temp_fileName = request.getParameter("downloadFileName");
if (temp_fileName == null || temp_fileName == "")
return;
byte[] temp_t = temp_fileName.getBytes("ISO8859_1");
String fileName = new String(temp_t, "GBK");
SmartUpload mySmartUpload = new SmartUpload();
mySmartUpload.initialize(config, request, response);
mySmartUpload.setContentDisposition(null);
/*
* 原型:public void setContentDisposition(String contentDisposition)
* 其中,contentDisposition为要添加的数据。
* 如果contentDisposition为null,则组件将自动添加"attachment;",
* 以表明将下载的文件作为附件,结果是IE浏览器将会提示另存文件,而不是自动打开这个文件
* (IE浏览器一般根据下载的文件扩展名决定执行什么操作,扩展名为doc的将用word程序打开,
* 扩展名为pdf的将用acrobat程序打开,等等)。
*/
try {
mySmartUpload.downloadFile("/upload/" + fileName);
} catch (SmartUploadException e) {
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
public void init(ServletConfig config) throws ServletException {
this.config = config;
}
}
web.xml配置文件:
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
UploadServlet
com.xml.servlet.UploadServlet
DownloadServlet
com.xml.servlet.DownloadServlet
UploadServlet
/servlet/UploadServlet
DownloadServlet
/servlet/DownloadServlet
index.jsp
maven配置smartupload_用jspsmartupload实现Jsp多文件上传下载,并解...相关推荐
- 基于华为云obs实现文件上传下载(技术栈mysql+springboot+Maven+jsp+java)的技术分享
基于华为云obs实现文件上传下载(技术栈mysql+springboot+jsp+java)的技术分享 obs实现文件上传下载 前言 一.OBS是什么? 二.使用步骤 1.1 前期准备 2 工具的内容 ...
- centos nfs java_CentOS下安装配置NFS并通过Java进行文件上传下载
1:安装NFS (1)安装 yum install nfs-utils rpcbind (2)启动rpcbind服务 systemctl restart rpcbind.service 查看服务状态 ...
- maven 文件上传下载_使用Maven将文件上传和下载到S3
maven 文件上传下载 多年来,我已经看到许多团队以许多不同的方式使用Maven. Maven可用于许多ci / cd任务,而无需使用额外的管道代码,或者可用于在运行某些测试之前准备开发环境. 通常 ...
- JSP基础:(7)jsp分页与文件上传下载
目录 1 jsp分页 1.1 定义 1.2 Servlet控制器方法 2 文件上传下载 2.1 定义 2.2 SmartUpload 2.2.1 介绍 2.2.2 SmartUpload组件-Requ ...
- java jsp 文件上传_用JSP编写文件上传
用JSP编写文件上传 发布时间:2016-09-14 来源: 点击: 次 如果你曾用VB编写文件上传的组件的话,那么用JAVA编写文件上传的JAVABEAN十分容易. 下面的例子只是一个简版 pack ...
- Goby 漏洞更新 | 万户 OA OfficeServer.jsp 任意文件上传漏洞
漏洞名称:万户 OA OfficeServer.jsp 任意文件上传漏洞 English Name:ezOFFICE OA OfficeServer.jsp Arbitrarily File Uplo ...
- 使用jspsmartupload完成简单的文件上传系统
请不要妄想,一个html的file控件,再加上JavaScript与jQuery语句就可以完成文件上传, 文件上传系统从来是需要配合服务器来完成的 用户把自己的文件上传到服务器上 文件上传系统是很复杂 ...
- JSP笔记-文件上传
JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准.JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTM ...
- JSP 文件上传下载系列之一[基本方式上传文件]
前言 在jsp的web项目中,很有可能会使用文件上传的功能. 把一个本地的文件上传到web 服务器的某个路径下. 对于java 来说, 实现这样功能的开源组件有很多, 比如较常用的commons-fi ...
- 文件上传下载配置失败
1.multipartResolver注册失败,此依赖导入后仍无效 <!--文件上传--><dependency><groupId>commons-fileuplo ...
最新文章
- Asp.Net Web API 2第一课——入门
- 第十、十一周项目-阅读程序,写出这些程序的运行结果(2)
- 前端后分离深入分析 ——浏览器渲染和服务器渲染区别
- 计算机主板开机接线端子,装机必看,机箱前置面板接线向导,不怕再接错线了...
- hibernate dialect 方言 sqlserver2000 的方言
- vs2008试用期到期解决办法
- 配置Servlet3.0的方式和注意事项!
- 计划任务 crontab、at
- java线程异步传值_Java 多线程传值的四种方法
- logrotate测试_日志管理工具logrotate
- 韦东山第3期嵌入式Linux项目-视频监控-2-从零写USB摄像头驱动(UVC驱动)
- 红米K40 Pro的root步骤(MIUI12.5 稳定版 安卓11)
- python傅里叶谐波分析_一种利用快速三角形式傅里叶变换的信号谐波分析方法
- Kotlin学习教程推荐
- 如何解决Xcode中的SIGABRT错误
- 双显示器如何设置上下显示和鼠标上下进入第二屏幕?
- 专用VPX背板连接器
- 三种快排及四种优化方式
- MongoDB,为何能在NoSQL家族里异军突起?
- mysql if 多个,mysql if条件中的多个条件
热门文章
- JS 生成条形码(一维码)jsBarcode
- 使用MTK的SN writer工具写IMEI的方法
- CS61A lab 0:getting started
- 间隙锁(Gap Lock)
- Cuda11.6 下载与安装[排坑版]
- php生成盖章图片,印章图案生成器
- 京东android插件化,Flutter 插件开发-接入京东SDK唤醒(ios篇)
- 基于 OpenFlow 的 SDN 技术 (论文笔记)
- 艾孜尔江用JS/TS生成随机姓名
- 3ds Max: Substance to V-Ray Workflows 3ds Max教程:从Substance到V-Ray工作流程 Lynda课程中文字幕