1. 程式人生 > >Java 通過url下載圖片

Java 通過url下載圖片

//web端通過點選下載圖片到本地(圖片url是服務上的訪問路徑)

前端程式碼:

<a href ="javascript:void(0)"  onclick="downloadImg('${root}/web/${url}')" class="c-3277de mlr-6">下載</a>

 //下載海報
    function downloadImg(url) {
        window.location.href =url;
    }

後端程式碼:

@RequestMapping(value = "/web/{url}")
@ResponseBody
public void downloadImg(HttpServletResponse response, @PathVariable String url) {
OutputStream outputStream = null;
InputStream inputStream = null;
try {
    if (CommonUtil.isNotNull(url)) {
        logger.info("讀取圖片中");
        response.setContentType("application/force-download");
        response.setCharacterEncoding("utf-8");
        String fileName=activityId+".png";
        if(request.getHeader("user-agent").contains("Firefox"))//判斷是否為火狐
            fileName=new String(fileName.getBytes("utf-8"), "ISO8859-1");
        else
            fileName=URLEncoder.encode(fileName, "utf-8");
        response.setHeader("Content-Disposition", "attachment;filename=\""+fileName+"\"");

        //圖片下載
        URL url = new URL(url);
        URLConnection conn = url.openConnection();
        outputStream = response.getOutputStream();
        inputStream = conn.getInputStream();
        IOUtils.copy(inputStream, outputStream);
    }
} catch (Exception e) {
    logger.error("下載圖片失敗",e);
}finally {
    IOUtils.closeQuietly(inputStream);
    IOUtils.closeQuietly(outputStream);
}
}

如果你是湖南的歡迎加入湖南人在深圳-Java群:557651502