最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java文件上傳下載代碼實(shí)例

 更新時(shí)間:2019年03月18日 14:41:29   作者:弓長張&木子李  
這篇文章主要介紹了java文件上傳下載,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

本文實(shí)例為大家分享了java文件上傳下載的具體代碼,供大家參考,具體內(nèi)容如下

文件上傳

@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做一些操作如存入數(shù)據(jù)庫
     //以下的代碼是將文件file重新命名并存入Tomcat的webapp目錄下項(xiàng)目的下級(jí)目錄
     String fileRealName = file.getOriginalFilename();          //獲得原始文件名;
     /*int pointIndex = fileRealName.indexOf(".");            //點(diǎn)號(hào)的位置
     String fileSuffix = fileRealName.substring(pointIndex);       //截取文件后綴
     UUID FileId = UUID.randomUUID();            //生成文件的前綴包含連字符
     String savedFileName = FileId.toString().replace("-", "").concat(fileSuffix);    //文件存取名
     */
     
     String savedDir = request.getSession().getServletContext().getRealPath(uploadDir); //獲取服務(wù)器指定文件存取路徑
     File savedFile = new File(savedDir, fileRealName);
     boolean isCreateSuccess;
     try {
       isCreateSuccess = savedFile.createNewFile();
       if (isCreateSuccess) {

         file.transferTo(savedFile); //轉(zhuǎn)存文件
         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);
      //利用輸入輸出流對文件進(jìn)行下載
      InputStream inputStream = new FileInputStream(new File(path));
      //設(shè)置文件大小
      response.setHeader("Content-Length", String.valueOf(inputStream.available()));

      bis = new BufferedInputStream(inputStream);//構(gòu)造讀取流
      bos = new BufferedOutputStream(response.getOutputStream());//構(gòu)造輸出流
      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);
      }
    }
    // 返回值要注意,要不然就出現(xiàn)下面這句錯(cuò)誤!
    //java+getOutputStream() has already been called for this response
    return null;
  }

以上所述是小編給大家介紹的java文件上傳下載詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • java二叉查找樹的實(shí)現(xiàn)代碼

    java二叉查找樹的實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了java二叉查找樹的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • springBoot的事件機(jī)制GenericApplicationListener用法解析

    springBoot的事件機(jī)制GenericApplicationListener用法解析

    這篇文章主要介紹了springBoot的事件機(jī)制GenericApplicationListener用法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值的相關(guān)資料
    2019-09-09
  • Java如何實(shí)現(xiàn)對稱加密

    Java如何實(shí)現(xiàn)對稱加密

    這篇文章主要介紹了Java如何實(shí)現(xiàn)對稱加密問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 使用EasyPoi實(shí)現(xiàn)多Sheet頁導(dǎo)出的示例代碼

    使用EasyPoi實(shí)現(xiàn)多Sheet頁導(dǎo)出的示例代碼

    在項(xiàng)目開發(fā)中,我們常常會(huì)遇到導(dǎo)出多Sheet頁的需求,本文降維打擊介紹一下如何使用EasyPoi實(shí)現(xiàn)這一功能,文中的示例代碼簡潔易懂,有需要的可以參考下
    2025-03-03
  • SpringBoot JPA 表關(guān)聯(lián)查詢實(shí)例

    SpringBoot JPA 表關(guān)聯(lián)查詢實(shí)例

    本篇文章主要介紹了SpringBoot JPA 表關(guān)聯(lián)查詢實(shí)例,使用JPA原生的findBy語句實(shí)現(xiàn),具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-04-04
  • Java語言----三種循環(huán)語句的區(qū)別介紹

    Java語言----三種循環(huán)語句的區(qū)別介紹

    下面小編就為大家?guī)硪黄狫ava語言----三種循環(huán)語句的區(qū)別介紹。小編舉得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • Java的動(dòng)態(tài)代理和靜態(tài)代理及反射常用API詳解

    Java的動(dòng)態(tài)代理和靜態(tài)代理及反射常用API詳解

    這篇文章主要介紹了Java的動(dòng)態(tài)代理和靜態(tài)代理及反射常用API詳解,動(dòng)態(tài)代理是一種在運(yùn)行時(shí)動(dòng)態(tài)生成代理對象的技術(shù),它是一種設(shè)計(jì)模式,用于在不修改原始對象的情況下,通過代理對象來間接訪問原始對象,并在訪問前后執(zhí)行額外的操作,需要的朋友可以參考下
    2024-01-01
  • Java基于MySQL實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    Java基于MySQL實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java基于MySQL實(shí)現(xiàn)學(xué)生管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 線程池ThreadPoolExecutor并行處理實(shí)現(xiàn)代碼

    線程池ThreadPoolExecutor并行處理實(shí)現(xiàn)代碼

    這篇文章主要介紹了線程池ThreadPoolExecutor并行處理實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • IntelliJ?IDEA無公網(wǎng)遠(yuǎn)程Linux服務(wù)器環(huán)境開發(fā)過程(推薦收藏)

    IntelliJ?IDEA無公網(wǎng)遠(yuǎn)程Linux服務(wù)器環(huán)境開發(fā)過程(推薦收藏)

    下面介紹如何在IDEA中設(shè)置遠(yuǎn)程連接服務(wù)器開發(fā)環(huán)境并結(jié)合Cpolar內(nèi)網(wǎng)穿透工具實(shí)現(xiàn)無公網(wǎng)遠(yuǎn)程連接,然后實(shí)現(xiàn)遠(yuǎn)程Linux環(huán)境進(jìn)行開發(fā),感興趣的朋友跟隨小編一起看看吧
    2023-12-12

最新評(píng)論

安塞县| 个旧市| 平远县| 汉沽区| 会同县| 宜都市| 永德县| 新河县| 东明县| 吴忠市| 绥江县| 乌鲁木齐市| 深水埗区| 郧西县| 宜宾市| 玉溪市| 黔南| 长顺县| 壤塘县| 武穴市| 新乡县| 广灵县| 富顺县| 永修县| 镇安县| 潢川县| 霍城县| 丹阳市| 原阳县| 马尔康县| 济南市| 海口市| 无锡市| 隆子县| 江阴市| 公安县| 赤壁市| 贵阳市| 罗定市| 红安县| 福鼎市|