使用JAVA實現(xiàn)讀取文件流并設(shè)置瀏覽器下載或直接預(yù)覽-創(chuàng)新互聯(lián)

使用JAVA實現(xiàn)讀取文件流并設(shè)置瀏覽器下載或直接預(yù)覽?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

成都地區(qū)優(yōu)秀IDC服務(wù)器托管提供商(創(chuàng)新互聯(lián)).為客戶提供專業(yè)的達(dá)州電信機(jī)房,四川各地服務(wù)器托管,達(dá)州電信機(jī)房、多線服務(wù)器托管.托管咨詢專線:13518219792

response.setContentType(contentType);//不同的文件類型,contentType不一樣,比如圖片一般是image/jpeg、image/png等

@RequestMapping(value = "getFile/{folder}/{fileName:.+}*", method = RequestMethod.GET)
 public void getFile(HttpServletResponse response, @PathVariable String folder,
      @PathVariable String fileName)
 {
  // 設(shè)置編碼
  response.setCharacterEncoding("UTF-8");
  try
  {
 
   String path = folder + "/" + fileName;
   boolean flag = ossClient.doesObjectExist(ossProperties.getBucket(), path);
 
   // 判斷文件是否存在
   if (flag)
   {
    // 清空response
    response.reset();
    // 設(shè)置response的Header,注意這句,如果開啟,默認(rèn)瀏覽器會進(jìn)行下載操作,如果注釋掉,瀏覽器會默認(rèn)預(yù)覽。
    // response.addHeader("Content-Disposition",
    // "attachment;filename=" + FileUtil.getOriginalFilename(path));
    // response.addHeader("Content-Length", "" + buf.length);
   
    OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
    // ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
    OSSObject ossObject = ossClient.getObject(ossProperties.getBucket(), path);
 
    String contentType = ossObject.getObjectMetadata().getContentType();
    System.out.println(contentType);
    //注意contentType類型
    response.setContentType(contentType);
 
    byte[] buf = new byte[1024];
    InputStream in = ossObject.getObjectContent();
 
    int L;
    while ((L = in.read(buf)) != -1)
    {
     // if (buf.length != 0)
     // {
     toClient.write(buf, 0, L);
     // }
    }
    in.close();
    // 寫完以后關(guān)閉文件流
    toClient.flush();
    toClient.close();
    // response.getOutputStream().write(bos.toByteArray());
   }
   else
   {
    response.sendError(HttpServletResponse.SC_NOT_FOUND, "找不到相關(guān)資源");
   }
 
  }
  catch (IOException e)
  {
   e.printStackTrace();
  }
 }

分享文章:使用JAVA實現(xiàn)讀取文件流并設(shè)置瀏覽器下載或直接預(yù)覽-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://muchs.cn/article42/dpiihc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、外貿(mào)建站、網(wǎng)站建設(shè)、電子商務(wù)、用戶體驗、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司