首先要向浏览器发送图片下,那么肯定是要向浏览器发送个二进制流
那么就需要用到request和response
有了这两个你就可以进行操作了:上代码
try { String downloadFilename = "entrust"+UUID.randomUUID()+".jpeg";//文件的名称 downloadFilename = URLEncoder.encode(downloadFilename, "UTF-8");//转换中文否则可能会产生乱码 response.setContentType("image/jpg;charset=UTF-8");// 指明response的返回对象是图片流,里面的jpa你可以看你的需求替换,如果这里替换了那么downloadFilename中的后缀也要变 response.setHeader("Content-Disposition", "attachment;filename=" + downloadFilename);// 设置在下载框默认显示的文件名 url = new URL(image); DataInputStream dataInputStream = new DataInputStream(url.openStream()); ServletOutputStream output = response.getOutputStream() ;//必须通过response去获取一个输出流,否则你只会得到一个空的文件 byte[] buffer = new byte[1024]; int length; while ((length = dataInputStream.read(buffer)) > 0) { output.write(buffer, 0, length); } output.close(); dataInputStream.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }