java文件上传下载代码实例

本文实例为大家分享了java文件上传下载的具体代码,供大家参考,具体内容如下

文件上传

@RequestMapping(value="/uploadFile",method=RequestMethod.POST)
 public ResultObject uploadFiles(@RequestParam("file")MultipartFile file,HttpServletRequest request){
    ResultObject rs = null;//返回上传完成信息
    String uploadDir = "files";//上传目录,文件保存在webapp下的files文件中
   if(!file.isEmpty()) {
     //可以对user做一些操作如存入数据库
     //以下的代码是将文件file重新命名并存入Tomcat的webapp目录下项目的下级目录
     String fileRealName = file.getOriginalFilename();          //获得原始文件名;
     /*int pointIndex = fileRealName.indexOf(".");            //点号的位置
     String fileSuffix = fileRealName.substring(pointIndex);       //截取文件后缀
     UUID FileId = UUID.randomUUID();            //生成文件的前缀包含连字符
     String savedFileName = FileId.toString().replace("-", "").concat(fileSuffix);    //文件存取名
     */

     String savedDir = request.getSession().getServletContext().getRealPath(uploadDir); //获取服务器指定文件存取路径
     File savedFile = new File(savedDir, fileRealName);
     boolean isCreateSuccess;
     try {
       isCreateSuccess = savedFile.createNewFile();
       if (isCreateSuccess) {

         file.transferTo(savedFile); //转存文件
         rs = ResultObject.getSuccessResult("上传文件成功");
         Long size = file.getSize();//获取文件大小

         rs.setData(uploadDir+fileRealName);
       }else{
         rs = ResultObject.getFailResult("请修改文件名,重新上传");
       }
     } catch (IOException e) {
       e.printStackTrace();
     }
   }else{
     rs = ResultObject.getFailResult("文件不能为空");
   }
   return rs;
 }

文件下载

@RequestMapping(value = "/filterPermission/appDownLoad", method = RequestMethod.GET)
  public void appDownLoad(HttpServletRequest request, HttpServletResponse response) {
    //url是上面文件上传的url
    download(url,request,response);
  }
public String download(String filePath, HttpServletRequest request, HttpServletResponse response) {
    BufferedInputStream bis = null;
    BufferedOutputStream bos = null;
    try {
      //获取文件名
      String fileName = filePath.substring(filePath.lastIndexOf("/")+1);
      response.setCharacterEncoding("utf-8");
      response.setContentType("application/octet-stream");
      //response.setContentType("application/force-download");
      //处理下载弹出框名字的编码问题
      response.setHeader("Content-Disposition", "attachment;fileName="
          + new String( fileName.getBytes("gb2312"), "ISO8859-1" ));
      //获取文件的下载路径
      String path = request.getSession().getServletContext().getRealPath(filePath);
      //利用输入输出流对文件进行下载
      InputStream inputStream = new FileInputStream(new File(path));
      //设置文件大小
      response.setHeader("Content-Length", String.valueOf(inputStream.available()));

      bis = new BufferedInputStream(inputStream);//构造读取流
      bos = new BufferedOutputStream(response.getOutputStream());//构造输出流
      byte[] buff = new byte[1024];
      int bytesRead;
      //每次读取缓存大小的流,写到输出流
      while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
        bos.write(buff, 0, bytesRead);
      }
      response.flushBuffer();//将所有的读取的流返回给客户端

    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }finally{
      try{
        if(null != bis){
          bis.close();
        }
        if(null != bos){
          bos.close();
        }
      }catch(IOException e){
        System.out.println("下载文件失败,"+"文件路径:"+filePath+e);
        logger.error("文件下载失败!", e);
      }
    }
    // 返回值要注意,要不然就出现下面这句错误!
    //java+getOutputStream() has already been called for this response
    return null;
  }

以上所述是小编给大家介绍的java文件上传下载详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Java文件上传与文件下载实现方法详解

    本文实例讲述了Java文件上传与文件下载实现方法.分享给大家供大家参考,具体如下: Java文件上传 数据上传是客户端向服务器端上传数据,客户端向服务器发送的所有请求都属于数据上传.文件上传是数据上传的一种特例,指客户端向服务器上传文件.即将保存在客户端的文件上传一个副本到服务器,并保存在服务器中. 1.上传表单要求 文件上传要求客户端提交特殊的请求--multipart请求,即包含多部分数据的请求.必须将<form/>标签的enctype属性值设为"multipart/form-d

  • 基于Java文件输入输出流实现文件上传下载功能

    本文为大家分享了Java实现文件上传下载功能的具体代码,供大家参考,具体内容如下 前端通过form表单的enctype属性,将数据传递方式修改为二进制"流"的形式,服务端(servlet)通过  getInputStream() 获取流信息, 运用java I/O 流的基础操作将流写入到一个服务端临时创建的文件temp中,然后再次利用文件基本操作,读取并截取临时文件内容,根据其中信息创建相应的文件,将读取出来的具体信息写入,下载时,根据提交的文件名称,找到服务器端相应的文件,然后根据输

  • JavaWeb实现多文件上传及zip打包下载

    本文实例为大家分享了javaweb多文件上传及zip打包下载的具体代码,供大家参考,具体内容如下 项目中经常会使用到文件上传及下载的功能.本篇文章总结场景在JavaWeb环境下,多文件上传及批量打包下载功能,包括前台及后台部分. 首先明确一点: 无法通过页面的无刷新ajax请求,直接发下载.上传请求.上传和下载,均需要在整页请求的基础上实现.项目中一般通过构建form表单形式实现这一功能. 一.多文件上传 项目需求为实现多图片上传功能.参考测试了网上找到的众多插件方法后,决定选用Jquery原始

  • Java利用apache ftp工具实现文件上传下载和删除功能

    利用apache ftp工具实现文件的上传下载和删除,具体如下 1.下载相应的jar包 commons-net-1.4.1.jar 2.实现代码如下: public class FtpUtils { //ftp服务器地址 public String hostname = "192.168.1.249"; //ftp服务器端口号默认为21 public Integer port = 21 ; //ftp登录账号 public String username = "root&qu

  • java实现文件上传下载至ftp服务器

    以前做的一个项目,用到了文件上传下载至ftp服务器,现在对其进行一下复习,比较简单,一下就能看明白. 环境:首先,先安装ftp服务器,我是在win8本地用IIS配置的, 百度一下就可以找到安装文档. 1.在你的项目目录下建立ftp配置文件,目录如下图 01 ftpconfig.properties: ftpIp=10.73.222.29 ftpPort=21 ftpUser=WP ftpPwd=04143114wp ftpRemotePath=d://share 02 读取ftpconfig.p

  • java文件上传下载代码实例

    本文实例为大家分享了java文件上传下载的具体代码,供大家参考,具体内容如下 文件上传 @RequestMapping(value="/uploadFile",method=RequestMethod.POST) public ResultObject uploadFiles(@RequestParam("file")MultipartFile file,HttpServletRequest request){ ResultObject rs = null;//返回

  • Python Socketserver实现FTP文件上传下载代码实例

    一.Socketserver实现FTP,文件上传.下载 目录结构 1.socketserver实现ftp文件上传下载,可以同时多用户登录.上传.下载 效果图: 二.上面只演示了下载,上传也是一样的,来不及演示了,上代码 1.客户端 import socket,hashlib,os,json,sys,time class Ftpclient(object): def __init__(self): self.client = socket.socket() def connect(self,ip,

  • Spring mvc文件上传下载代码实例

    简介 文件上传是项目开发中最常见的功能之一 ,springMVC 可以很好的支持文件上传,但是SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下其不能处理文件上传工作.如果想使用Spring的文件上传功能,则需要在上下文中配置MultipartResolver. 前端表单要求:为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data.只有在这样的情况下,浏览器才会把用户选择的文件以二进制数据发送给

  • Java文件上传下载、邮件收发实例代码

    文件上传下载 前台: 1. 提交方式:post 2. 表单中有文件上传的表单项: <input type="file" /> 3. 指定表单类型: 默认类型:enctype="application/x-www-form-urlencoded" 文件上传类型:multipart/form-data FileUpload 文件上传功能开发中比较常用,apache也提供了文件上传组件! FileUpload组件: 1. 下载源码 2. 项目中引入jar文件

  • FasfDFS整合Java实现文件上传下载功能实例详解

    在上篇文章给大家介绍了FastDFS安装和配置整合Nginx-1.13.3的方法,大家可以点击查看下. 今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</arti

  • Struts2 控制文件上传下载功能实例代码

    之前介绍servlet3.0新特性的时候有提到过servlet API提供了一个part类来实现对文件的上传和保存,Struts其实是在其基础上做了进一步的封装,更加简单易用.至于文件下载,Struts贯彻AOP 思想,在下载之前提供对用户权限控制的API. 下面我们将详细介绍上传和下载的相关内容. 一.Struts文件上传机制 想要实现文件上传功能,页面的表单的method属性必须被指定为post,还有enctype属性必须为multipart/form-data,该值表示上传的内容将会以二进

  • Socket+JDBC+IO实现Java文件上传下载器DEMO详解

    该demo实现的功能有: 1.用户注册: 注册时输入两次密码,若两次输入不一致,则注册失败,需要重新输入.若用户名被注册过,则提示用户重新输入用户名: 2.用户登录: 需要验证数据库中是否有对应的用户名和密码,若密码输错三次,则终止用户的登录操作: 3.文件上传: 从本地上传文件到文件数据库中 4.文件下载: 从数据库中下载文件到本地 5.文件更新: 根据id可更新数据库中的文件名 6.文件删除: 根据id删除数据库中某一个文件 7.看数据库所有文件; 8.查看文件(根据用户名); 9.查看文件

  • java中struts2实现文件上传下载功能实例解析

    本文实例讲述了java中struts2实现文件上传下载功能实现方法.分享给大家供大家参考.具体分析如下: 1.文件上传 首先是jsp页面的代码 在jsp页面中定义一个上传标签 复制代码 代码如下: <tr>      <td align="right" bgcolor="#F5F8F9"><b>附件:</b></td>      <td bgcolor="#FFFFFF">

  • java文件上传下载功能实现代码

    本文实例为大家分享了文件上传下载java实现代码,供大家参考,具体内容如下 前台: 1. 提交方式:post 2. 表单中有文件上传的表单项: <input type="file" /> 3. 指定表单类型:     默认类型:enctype="application/x-www-form-urlencoded"     文件上传类型:multipart/form-data FileUpload 文件上传功能开发中比较常用,apache也提供了文件上传组

  • JavaEE中struts2实现文件上传下载功能实例解析

    本文实例为大家分享了struts2实现文件上传下载的具体实现代码,供大家参考,具体内容如下 一.文件上传 struts提交的文件组件上传, 前台: 1).提交方式POST 2).表单类型 multipart/form-data 3).input type=file 后台: Apache提供的FileUpload组件 核心类: FileItemFactory FileItem的工厂 ServletFileUpload servlet 中的文件上传的核心类 FileItem 封装了上传的表单文件项的

随机推荐