`
圣米格利托
  • 浏览: 58499 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jsp+servlet实现文件上传与下载源码

 
阅读更多

上传:
需要导入两个包:commons-fileupload-1.2.1.jar,commons-io-1.4.jar
import java.io.File;
import java.io.IOException;
import java.util.List;

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.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

/**
 * 上传附件
 * @author new
 *
 */
public class UploadAnnexServlet extends HttpServlet {

 private static String path = "";

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  doPost(request, response);
 }

 /*
  * post处理
  * (non-Javadoc)
  * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
  */
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  path = this.getServletContext().getRealPath("/upload");

  try {
   DiskFileItemFactory factory = new DiskFileItemFactory();
   ServletFileUpload up = new ServletFileUpload(factory);
   List<FileItem> ls = up.parseRequest(request);

   for (FileItem fileItem : ls) {
    if (fileItem.isFormField()) {
     String FieldName = fileItem.getFieldName();
     //getName()返回的是文件名字 普通域没有文件 返回NULL
     //                    String Name = fileItem.getName();
     String Content = fileItem.getString("gbk");
     request.setAttribute(FieldName, Content);
    } else {
    
     String nm = fileItem.getName().substring(
       fileItem.getName().lastIndexOf("\\") + 1);
     File mkr = new File(path, nm);
     if (mkr.createNewFile()) {
      fileItem.write(mkr);//非常方便的方法
     }
     request.setAttribute("result", "上传文件成功!");
    }
   }
  } catch (Exception e) {
   e.printStackTrace();
   request.setAttribute("result", "上传失败,请查找原因,重新再试!");
  }
  request.getRequestDispatcher("/pages/admin/annex-manager.jsp").forward(
    request, response);
 }

} 


下载(i/o流)无需导包:
import java.io.IOException;
import java.net.URLEncoder;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 下载文件
 * @author
 *
 */
public class DownloadFilesServlet extends HttpServlet {

 /**
  * 
  */
 private static final long serialVersionUID = 8594448765428224944L;

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  doPost(request, response);
 }

 /*
  * 处理请求
  * (non-Javadoc)
  * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
  */
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  String name = request.getParameter("fileName");

  System.out.print("dddddddddd:" + name);
  // web绝对路径
  String path = request.getSession().getServletContext().getRealPath("/");
  String savePath = path + "upload";

  // 设置为下载application/x-download
  response.setContentType("application/x-download");
  // 即将下载的文件在服务器上的绝对路径
  String filenamedownload = savePath + "/" + name;
  // 下载文件时显示的文件保存名称
  String filenamedisplay = name;
  // 中文编码转换
  filenamedisplay = URLEncoder.encode(filenamedisplay, "UTF-8");
  response.addHeader("Content-Disposition", "attachment;filename="
    + filenamedisplay);
  try {
   java.io.OutputStream os = response.getOutputStream();
   java.io.FileInputStream fis = new java.io.FileInputStream(
     filenamedownload);
   byte[] b = new byte[1024];
   int i = 0;
   while ((i = fis.read(b)) > 0) {
    os.write(b, 0, i);
   }
   fis.close();
   os.flush();
   os.close();
  } catch (Exception e) {

  }

 }

}
分享到:
评论

相关推荐

    JSP+servlet+mysql网盘系统源码+项目说明.zip

    JSP+servlet+mysql网盘系统源码+项目说明.zip # OnlineDisk JSP+servlet,网盘系统,mysql JSP+servlet+mysql网盘系统源码+项目说明.zip # OnlineDisk JSP+servlet,网盘系统,mysql JSP+servlet+mysql网盘系统源码+...

    jsp+servlet+javaBean实现MVC源码

    jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+...

    Java期末大作业 基于Java+JSP+Servlet实现的租车管理系统源码

    Java期末大作业 基于Java+JSP+Servlet实现的租车管理系统源码 Java期末大作业 基于Java+JSP+Servlet实现的租车管理系统源码 Java期末大作业 基于Java+JSP+Servlet实现的租车管理系统源码 Java期末大作业 基于Java+...

    基于myeclipse编写javaBean+JSP+Servlet网上问卷调查系统源码.zip

    基于myeclipse编写javaBean+JSP+Servlet网上问卷调查系统源码.zip基于myeclipse编写javaBean+JSP+Servlet网上问卷调查系统源码.zip基于myeclipse编写javaBean+JSP+Servlet网上问卷调查系统源码.zip基于myeclipse编写...

    大学本科JSP课程的期末作业JSP+Servlet+layui实现的博客系统源码.zip

    下载使用tomcat就可以使用,数据库语句也有,如果要修改数据库配置就在tool下面的工具类修改即可大学本科JSP课程的期末作业JSP+Servlet+layui实现的博客系统源码。教程 下载使用tomcat就可以使用,数据库语句也有,...

    基于jsp+servlet+mysql的图书管理系统源码+数据库.zip

    基于jsp+servlet+mysql的图书管理系统源码+数据库.zip可作为课程设计、期末大作业等等,下载即用。 基于jsp+servlet+mysql的图书管理系统源码+数据库.zip可作为课程设计、期末大作业等等,下载即用。 基于jsp+...

    jsp+servlet+javabean实现网上商城项目完整源码

    总的来说,"jsp+servlet+javabean实现网上商城项目完整源码"是一个涵盖了Web开发基础、数据库操作、业务逻辑处理等多个方面的综合实践。通过对这个项目的深入学习,开发者不仅能掌握Web开发的基本技术,还能理解如何...

    基于jsp+servlet的人力资源管理系统源码.zip

    基于jsp+servlet的人力资源管理系统源码.zip基于jsp+servlet的人力资源管理系统源码.zip 基于jsp+servlet的人力资源管理系统源码.zip基于jsp+servlet的人力资源管理系统源码.zip 基于jsp+servlet的人力资源管理系统...

    参考源码-jsp+servlet+jdbc实现新闻管理系统.zip

    这是JSP+Servlet+MySql新闻管理系统,环境Eclipse+Mysql+Tomacat8.5运行的,里面libJAR包都有,jsp+servlet+jdbc实现新闻管理系统,这个视频值得看,很基础。...

    jsp+servlet+mysql实现的乐趣大型购物系统(源码+数据库)

    jsp+servlet+mysql实现的乐趣大型购物系统(源码+数据库) jsp+servlet+mysql实现的乐趣大型购物系统(源码+数据库) jsp+servlet+mysql实现的乐趣大型购物系统(源码+数据库) jsp+servlet+mysql实现的乐趣大型购物系统...

    JSP源码——jsp+servlet+javaBean实现MVC_jspmvc.zip

    【JSP源码——jsp+servlet+javaBean实现MVC】是基于Java Web技术构建的一种经典MVC(Model-View-Controller)模式的应用实例。在Web开发中,MVC模式被广泛采用,它将应用程序的业务逻辑、数据处理和用户界面分离,...

    基于jsp+servlet实现的简单博客系统实例(附源码)

    主要介绍了基于jsp+servlet实现的简单博客系统,以完整实例形式分析了基于jsp+servlet简单博客系统的原理与相关技巧,并附带了完整源码供读者下载学习,需要的朋友可以参考下

    基于jsp+servlet的通用型文件信息管理系统源码+数据库文件.zip

    基于jsp+servlet的通用型文件信息管理系统源码+数据库文件.zip基于jsp+servlet的通用型文件信息管理系统源码+数据库文件.zip基于jsp+servlet的通用型文件信息管理系统源码+数据库文件.zip基于jsp+servlet的通用型...

    基于jsp+Servlet+jstl写的考勤系统源码.zip

    基于jsp+Servlet+jstl写的考勤系统源码.zip基于jsp+Servlet+jstl写的考勤系统源码.zip基于jsp+Servlet+jstl写的考勤系统源码.zip基于jsp+Servlet+jstl写的考勤系统源码.zip基于jsp+Servlet+jstl写的考勤系统源码.zip...

    jsp+servlet实现书城1

    使用jsp+servlet+mysql实现图书商城,适合初学者使用,本教程一共分为六个视频完成所有的功能操作,大家需要下载六个视频,这个六个视频是完整的贯穿案例。

    基于JSP+Servlet+Mysql的宿舍管理系统源码+数据库.zip

    基于JSP+Servlet+Mysql的宿舍管理系统源码+数据库.zip基于JSP+Servlet+Mysql的宿舍管理系统源码+数据库.zip基于JSP+Servlet+Mysql的宿舍管理系统源码+数据库.zip基于JSP+Servlet+Mysql的宿舍管理系统源码+数据库.zip...

    jsp+servlet+jdbc实现增删改查项目

    史上最简单的jsp+servlet+jdbc实现CRUD项目,已经经历了千锤百炼的测试与修改,健壮性一级棒!没有任何问题。而且简明易懂,内附大量注释,是不可多得的好例子。为了保证简单,甚至没有把每个servlet里的jdbc连接...

    JAVA 语言 使用 jsp+servlet+javaBean实现MVC源码

    jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+...

Global site tag (gtag.js) - Google Analytics