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

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)
{
// 設置編碼
response.setCharacterEncoding("UTF-8");
try
{
String path = folder + "/" + fileName;
boolean flag = ossClient.doesObjectExist(ossProperties.getBucket(), path);
// 判斷文件是否存在
if (flag)
{
// 清空response
response.reset();
// 設置response的Header,注意這句,如果開啟,默認瀏覽器會進行下載操作,如果注釋掉,瀏覽器會默認預覽。
// 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();
// 寫完以后關閉文件流
toClient.flush();
toClient.close();
// response.getOutputStream().write(bos.toByteArray());
}
else
{
response.sendError(HttpServletResponse.SC_NOT_FOUND, "找不到相關資源");
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
分享文章:使用JAVA實現(xiàn)讀取文件流并設置瀏覽器下載或直接預覽-創(chuàng)新互聯(lián)
網站地址:http://chinadenli.net/article42/dpiihc.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站制作、外貿建站、網站建設、電子商務、用戶體驗、網站改版
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容