`

java 文件上传下载

    博客分类:
  • Java
 
阅读更多

 

文件下载

 

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. <!--1 必须是post提交
  2. 2 表单的编码类型必须指定为 enctype="multipart/form-data" -->
  3. <form action="/upload?cmd=upload" method="post" enctype="multipart/form-data">
  4. 用户名:<input type="text" name="username"><br/>
  5. 图像:<input type="file" name="file"><br/>
  6. <input type="submit" value="提交">
  7. </form>

 

分享到:
评论

相关推荐

    java文件上传下载工具类

    以下是对"java文件上传下载工具类"这一主题的详细解释。 首先,让我们了解文件上传。在Web应用中,用户可能需要上传文件,如图片、文档或视频。Java通过Servlet API提供了处理文件上传的功能。Servlet 3.0及以上...

    Java文件上传下载.pdf

    Java文件上传下载是Web开发中的常见功能,涉及到客户端与服务器之间的数据传输。根据提供的文件内容,我们可以了解到具体的实现技术点以及使用的工具类。 文件上传: 1. SmartUpload类:SmartUpload是用于文件上传...

    Java文件上传下载实例(含详细注释)

    以下是关于"Java文件上传下载实例(含详细注释)"的详细知识点解析: 1. **Servlet与JSP**: - Java文件上传通常涉及到Servlet技术,Servlet是Java为HTTP协议提供的一种服务端接口,用于处理客户端(浏览器)的请求...

    java文件上传下载完整demo

    总结来说,Java文件上传下载的完整案例涵盖了Servlet API的使用、文件I/O操作以及HTTP响应头的设置。通过学习和实践这个示例,开发者可以掌握基本的文件上传下载功能的实现,为构建更复杂的应用打下坚实的基础。

    java 文件上传下载 断点续传 断点上传

    总的来说,实现Java文件上传下载以及断点续传涉及的技术包括HTTP协议、Servlet编程、文件I/O操作,以及对网络通信的理解。通过合理运用这些技术,可以构建出高效且用户友好的文件处理系统。而提供的"uploadFile"可能...

    java文件上传下载

    Java文件上传下载是Web开发中常见的功能,尤其在构建企业级应用、个人博客系统或论坛等需要用户交互的场景中,文件上传下载是必不可少的一部分。本项目提供的是一套基于Java的完整文件上传下载解决方案,利用了JSP和...

    Java文件上传下载

    Java文件上传和下载是通过Servlet API实现的,涉及HTTP请求的处理、文件I/O操作以及HTTP响应头的设置。在实际项目中,还需要考虑安全性(如防止文件覆盖、非法文件类型上传等)和性能优化(如使用多线程、缓存等)。...

    java文件上传下载工具

    java文件上传下载工具,支持上传下载,目录创建,文件复制,文件删除

    java文件上传下载jar包

    这里提到的"java文件上传下载jar包"指的是Java中用于处理文件上传和下载操作的库的jar文件。下面将详细介绍这个主题中的相关知识点。 1. **Servlet API**:Java Servlet API是Java Web开发的基础,它提供了处理HTTP...

    java文件上传下载.docx

    Java 文件上传下载 Java 文件上传下载是 Web 应用中非常常见的一种功能,特别是在 JSP 环境中实现文件上传功能非常容易。 Apache 的 Commons FileUpload 组件是实现文件上传功能的一种流行的选择。本文将详细介绍...

    文件上传下载需要的jar包 java文件上传下载

    在这个场景下,"文件上传下载需要的jar包"指的是用于处理文件上传和下载操作的Java类库。下面将详细介绍相关的知识点。 1. **Apache Commons FileUpload**: 这是一个非常流行的Java库,用于处理HTTP请求中的多部分...

    chapter16_java文件上传下载_

    本章("chapter16_java文件上传下载_")将深入探讨如何使用Java实现这些功能。 首先,让我们了解文件上传的基本流程。在Web应用中,文件上传通常涉及到HTTP协议中的多部分表单数据(Multipart Form Data)。用户...

Global site tag (gtag.js) - Google Analytics