- 浏览: 107127 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wxynxyo:
非常感谢,解决了一个问题
Spring MVC 类型转换 @InitBinder使用 转 -
hxsmile:
很清晰明了
MyEclipse下XFire开发Webservice实例 -
yaoyy:
...
MyEclipse下XFire开发Webservice实例 -
hyl523:
好,明白了,多谢!
MyEclipse下XFire开发Webservice实例
文件下载
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
* 文件下载处理Servlet
*
*/
public class FileDownloadServlet extends HttpServlet {
private int maxPostSize = 100 * 1024 * 1024;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
System.out.println("Access FileDownloadServlet");
// 获取访问路径
String webPath ="D:/tomcat"
String downloadPath = webPath + "\\webapps\\pages\\dbdata\\download\\";
// 检查存储目录是否已经存在,如果不存在则需要创建存储目录
File filePath = new File(downloadPath);
if (!filePath.exists()) {
filePath.mkdirs();
}
//设置客户端保存时指定默认文件名
//String fileName = "test.xml";
String fileName = request.getAttribute("file").toString();
String path = downloadPath + fileName;
System.out.println(path);
// 写流文件到前端浏览器
ServletOutputStream out = response.getOutputStream();
response.setHeader(" Content-disposition ", " attachment;filename= " + fileName);
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(new FileInputStream(path));
bos = new BufferedOutputStream(out);
byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
} catch (IOException e) {
throw e;
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
response.flushBuffer();
}
}
文件上传
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
* 文件上传处理Servlet
*
*/
public class FileUploadServlet extends HttpServlet {
private int maxPostSize = 100 * 1024 * 1024;
private String fileName; // 上传的文件名称
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// 获取访问路径
String uploadPath = webPath + "\\webapps\\pages\\dbdata\\upload\\";
// 检查存储目录是否已经存在,如果不存在则需要创建存储目录
File filePath = new File(uploadPath);
if (!filePath.exists()) {
filePath.mkdirs();
}
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024 * 10);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(maxPostSize);
// 上传文件
try {
List fileItems = upload.parseRequest(request);
Iterator iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (!item.isFormField()) {
String fileName = item.getName();
this.setFileName(fileName); //保存文件名称
try {
System.out.println("上传的文件是:" + uploadPath + fileName);
File skFile = new File(uploadPath + fileName);
if (skFile.exists()) {
skFile.delete();
item.write(new File(uploadPath + fileName));
} else {
item.write(new File(uploadPath + fileName));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
}
}
JSP
- <!--1 必须是post提交
- 2 表单的编码类型必须指定为 enctype="multipart/form-data" -->
- <form action="/upload?cmd=upload" method="post" enctype="multipart/form-data">
- 用户名:<input type="text" name="username"><br/>
- 图像:<input type="file" name="file"><br/>
- <input type="submit" value="提交">
- </form>
发表评论
-
JDK使用InvocationHandler和Proxy实现动态代理
2013-06-11 23:54 974----------------------- ... -
java 内存溢出
2013-06-03 16:25 805java虚拟机的内存基本概念: PermGen spac ... -
java Base64encoder 加密解密
2012-11-18 00:11 2032代码: package Encryption; ... -
java NIO (转)
2012-11-06 16:11 7621. 基本 概念 IO 是主存和外部设备 ( 硬盘、终 ... -
Socket + json + tomcat
2012-10-24 15:09 1317本文主要实现不同tomcat服务器之间通过socket通信,数 ... -
java 日志 log4j和slf4j
2012-10-22 23:01 919log4j简易入门 package ... -
java JDBC
2012-10-09 11:34 793分为6个步骤 1. load the driver (1)Cl ... -
java JExcelUtil
2012-09-09 11:54 4import java.io.File; imp ... -
java 日记
2012-09-06 23:14 5641、调用本地动态库(.dll),使用技术 jna 2、 ... -
java IO
2012-09-02 17:20 902流(IO管道): 1、inputStream O ... -
java 线程
2012-09-02 00:06 674线程:线程并行;方 ... -
java的基本数据类型
2012-08-16 16:03 7java的8种基本数据类型包括:byte、short、 ... -
java Junit
2012-08-11 00:19 801什么是单元测试 ... -
Java Socket编程
2012-08-08 21:13 615第一步 充分理解Socket ... -
java 反射 获得属性值
2012-05-02 22:55 2847通过java反射获得属性值 J ... -
JAVA IO 乱码
2012-05-02 22:59 42012-04-18 20:38 最近在做HTML静态生 ... -
Java 开发代理服务器
2012-08-07 11:01 710代理服务器的应用非 ... -
java excel
2012-08-07 21:27 1071JXL 读写以及修改EXCEL文件 首先引用网上的文 ...
相关推荐
以下是对"java文件上传下载工具类"这一主题的详细解释。 首先,让我们了解文件上传。在Web应用中,用户可能需要上传文件,如图片、文档或视频。Java通过Servlet API提供了处理文件上传的功能。Servlet 3.0及以上...
Java文件上传下载是Web开发中的常见功能,涉及到客户端与服务器之间的数据传输。根据提供的文件内容,我们可以了解到具体的实现技术点以及使用的工具类。 文件上传: 1. SmartUpload类:SmartUpload是用于文件上传...
以下是关于"Java文件上传下载实例(含详细注释)"的详细知识点解析: 1. **Servlet与JSP**: - Java文件上传通常涉及到Servlet技术,Servlet是Java为HTTP协议提供的一种服务端接口,用于处理客户端(浏览器)的请求...
总结来说,Java文件上传下载的完整案例涵盖了Servlet API的使用、文件I/O操作以及HTTP响应头的设置。通过学习和实践这个示例,开发者可以掌握基本的文件上传下载功能的实现,为构建更复杂的应用打下坚实的基础。
总的来说,实现Java文件上传下载以及断点续传涉及的技术包括HTTP协议、Servlet编程、文件I/O操作,以及对网络通信的理解。通过合理运用这些技术,可以构建出高效且用户友好的文件处理系统。而提供的"uploadFile"可能...
Java文件上传下载是Web开发中常见的功能,尤其在构建企业级应用、个人博客系统或论坛等需要用户交互的场景中,文件上传下载是必不可少的一部分。本项目提供的是一套基于Java的完整文件上传下载解决方案,利用了JSP和...
Java文件上传和下载是通过Servlet API实现的,涉及HTTP请求的处理、文件I/O操作以及HTTP响应头的设置。在实际项目中,还需要考虑安全性(如防止文件覆盖、非法文件类型上传等)和性能优化(如使用多线程、缓存等)。...
java文件上传下载工具,支持上传下载,目录创建,文件复制,文件删除
这里提到的"java文件上传下载jar包"指的是Java中用于处理文件上传和下载操作的库的jar文件。下面将详细介绍这个主题中的相关知识点。 1. **Servlet API**:Java Servlet API是Java Web开发的基础,它提供了处理HTTP...
Java 文件上传下载 Java 文件上传下载是 Web 应用中非常常见的一种功能,特别是在 JSP 环境中实现文件上传功能非常容易。 Apache 的 Commons FileUpload 组件是实现文件上传功能的一种流行的选择。本文将详细介绍...
在这个场景下,"文件上传下载需要的jar包"指的是用于处理文件上传和下载操作的Java类库。下面将详细介绍相关的知识点。 1. **Apache Commons FileUpload**: 这是一个非常流行的Java库,用于处理HTTP请求中的多部分...
本章("chapter16_java文件上传下载_")将深入探讨如何使用Java实现这些功能。 首先,让我们了解文件上传的基本流程。在Web应用中,文件上传通常涉及到HTTP协议中的多部分表单数据(Multipart Form Data)。用户...