jsp+servlet实现文件上传与下载功能

编程之家收集整理的这篇文章主要介绍了jsp+servlet实现文件上传与下载功能编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

本文实例为大家分享了jspservlet实现文件上传与下载的具体代码,供大家参考,具体内容如下,下方主要介绍关于jsp+servlet实现文件上传与下载功能的全文内容,希望对你有所帮助。

本文实例为大家分享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,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,response);
 }

 /*
 * 处理请求
 * (non-Javadoc)
 * @see javax.servlet.http.httpServlet#doPost(javax.servlet.http.httpServletRequest,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,i);
 }
 fis.close();
 os.flush();
 os.close();
 } catch (Exception e) {

 }

 }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧

总结

以上是编程之家为你收集整理的jsp+servlet实现文件上传与下载功能全部内容,希望文章能够帮你解决jsp+servlet实现文件上传与下载功能所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

Jsp文章

  这节我们总结一下Jsp的相关技术。 1. 什么是JSP   JSP即JavaServerPages,它和servlet技术一样,都是sun公司定义的一种用于开发动态web资源的技术。该技术的最大特点在于:写JSP就像写html,但它相比htm
JSP获取本地图片的实例详解 IE当前7以上版本不支持直接在src上写本地硬盘地址来显示图片。因为我们只有通过后台在response中读到二进制流的方式来在前台显示图片。
详解JSP中使用过滤器进行内容编码的解决办法 问题 当通过JSP页面,向数据库中插入记录的时候,可能因为JSP页面编码原因,导致插入到数据库中的新纪录出现乱码。因此需要对JSP页面中的内容进行编码操作,从而保证与数
JSPSession超时设置的实现方法 在JavaWeb开发中,Session为我们提供了很多方便,Session是由浏览器和服务器之间维护的。Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠时间)没有
吼吼,我遇到的问题是这样的...... 我写了一个图片上传的方法,上传时,判断没有这个目录就自动建立一个。然后开始上传图片,能成功,能在服务器找到文件夹和相应的文件。但是,重启项目,或者清理缓存之后,图片和
1.在jsp中用include指令引入HTML文件时遇到的问题: jsp、html都可以正确的显示,当jsp引入html时访问jsp页面HTML出现乱码,jsp原有的输出无乱码,解决方法:
JSP的request对象实例详解 一request对象定义 客户端的请求信息被封装在request对象中,通过它才能了解客户的需求,然后做出响应。它是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求之前
JSP生成九九乘法表的简单实例 一用表达式和脚本方式实现九九乘法表 <%@pagelanguage=\"java\"import=\"java.util.*\"contentType=\"text/html;charset=utf-8\"%>
微信公众号搜索 “ 程序精选 ” ,选择关注!
微信公众号搜 "程序精选"关注