import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.URL;

import java.net.URLConnection;

import org.apache.commons.io.IOUtils;

/**

* 从服务器中下载图片

*

* @param fileName 图片地址

* @param response

* @return

*/

@RequestMapping(value = "/download")

public void downloadMedia(HttpServletResponse response, HttpServletRequest request) {

InputStream inputStream = null;

OutputStream outputStream = null;

try {

//处理中文乱码

request.setCharacterEncoding("UTF-8");

String fileName = request.getParameter("fileName");

fileName = new String(fileName.getBytes("iso8859-1"),"UTF-8");

//处理浏览器兼容

response.setContentType("application/msexcel;charset=utf-8");//定义输出类型

Enumeration enumeration = request.getHeaders("User-Agent");

String browserName = (String) enumeration.nextElement();

boolean isMSIE = browserName.contains("MSIE");

if (isMSIE) {

response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "UTF8"));

} else {

response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("gb2312"), "ISO8859-1"));

}

//url地址如果存在空格,会导致报错! 解决方法为:用+或者%20代替url参数中的空格。

fileName = fileName.replace(" ", "%20");

//图片下载

URL url = new URL(fileName);

URLConnection conn = url.openConnection();

outputStream = response.getOutputStream();

inputStream = conn.getInputStream();

IOUtils.copy(inputStream, outputStream);

} catch (IOException e) {

System.err.println(e);

}finally {

IOUtils.closeQuietly(inputStream);

IOUtils.closeQuietly(outputStream);

}

}

Java代码服务器上下载图片_Java如何从服务器中下载图片相关推荐

  1. java调用下载窗口_java 从网络Url中下载文件 java调用url接口

    /** * 从网络Url中下载文件 * @param urlStr * @param fileName * @param savePath * @throws IOException */ publi ...

  2. Java代码实现上传视频获取视频某一帧作为截图封面(二)

    上一个文章讲了Java代码实现上传视频获取视频某一帧作为截图封面的一种方法,现在讲述第二种方法.为什么要在这里讲这种方法呢?第一.这种方法生成的图片占用的空间更小第二.这种方法可以获取很多信息 一.根 ...

  3. 当Java代码遇上抽象、重载加重写,一切都不美好了

    当Java代码遇上抽象.重载加重写.一切都不美好了 前几天调程序遇上个奇怪的bug.一直没找到问题,今天最终发现问题所在了,不说了先上代码(下面代码是演示样例代码,经測试,Java不存在这问题,安卓存 ...

  4. ubuntu下linux:curl使用ftp获取服务器上指定目录的所有文件集合以及下载

    curl使用ftp获取服务器上指定目录的所有文件集合以及下载 直接编译可用,注意修改测试main函数内的字符串,注释我觉得写的挺详细了,跑不起来的评论区可问 头文件 #ifndef FTP_DOWNL ...

  5. 如果访问云服务器上的文件,如果访问云服务器上的文件

    如果访问云服务器上的文件 内容精选 换一换 WinSCP工具可以实现在本地与远程计算机之间安全地复制文件.与使用FTP上传代码相比,通过 WinSCP 可以直接使用服务器账户密码访问服务器,无需在服务 ...

  6. 在服务器上导出dmp文件,远程在服务器上导出dmp文件

    远程在服务器上导出dmp文件 内容精选 换一换 由于非工作时间或出差等原因,运维人员无法通过告警管理界面查看告警/事件,但又想实时了解告警/事件的产生或清除情况时,可以配置远程通知规则,将关注的告警/ ...

  7. 无法在Web服务器上启动调试。与Web服务器通信时出现身份验证错误

    使用Visual Studio 2005(Visual Studio 2008亦存在此问题)调试设置了主机头的网站时出现如下错误信息: --------- Microsoft Visual Studi ...

  8. 怎么在云服务器上布项目,怎么在云服务器上布项目

    怎么在云服务器上布项目 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 本章节通 ...

  9. 服务器上安装安卓系统教程,云服务器上安装安卓系统

    云服务器上安装安卓系统 内容精选 换一换 有,该NTP服务器仅限于在华为云控制台上购买的弹性云服务器安装使用.如需在购买的弹性云服务器上安装NTP服务器,您可以选择使用华为云控制台自己提供的NTP服务 ...

  10. 邮件服务器(eas)找不到服务器,Exchange ActiveSync 无法访问邮箱服务器上的邮箱,因为邮箱服务器处于脱机状态...

    上一次修改主题: 2015-03-08 Microsoft Operations Manager 的 Microsoft Exchange Server 2007 管理包可以监视运行 Exchange ...

最新文章

  1. python必背内容-【经验分享】学Python必背的初级单词
  2. 浅谈Ubuntu上离线安装包的制作与安装问题
  3. 通过JavaFX标注制作动画效果
  4. RMQ求区间最值 nlog(n)
  5. 互联网日报 | 网易回港二次上市首日涨5.69%;特斯拉成全球市值最高车企;大兴机场开通首条货运航线...
  6. [转载]:C#两种不同的存储过程调用方法
  7. python的tab自动补全
  8. kettle的hello world
  9. QT调用巴斯勒相机的使用
  10. lisp横断面数据文件_【干货】横断面测量数据批量转换成断面图,CASS应该如何做?...
  11. 摩尔庄园手游测评——爷青回or爷青毁?
  12. 如何启动联想计算机的休眠模式,如何设置休眠、待机、睡眠
  13. 【发现】中国与日德最可怕的差距,看着寒心
  14. 【CTS2019】氪金手游(动态规划)
  15. IDEA报错private field “xxx“ is never assigned解决
  16. 如何判断点是否在圆弧上
  17. 红米2联通4G版_标注:2014811_官方线刷包_救砖包_解账户锁
  18. OSChina 周二乱弹 —— 金 冈刂 犭良
  19. 我是如何在毕业不久只用1年就升为开发组长的
  20. noip模拟题11.11 光棍节测试

热门文章

  1. Linux基本命令 (一)
  2. Java多线程,锁(synchronize),饿汉式单例线程,等待处理机制
  3. 计数排序的应用----排序字符串
  4. 【Makefile由浅入深完全学习记录3】伪目标的引入
  5. 更改配置:远程访问gitlab的postgresql数据库
  6. PM2.5环境检测系统的设计与分析
  7. php: +1天, +3个月, strtotime(): +1 day, +3 month
  8. BZOJ 1877 拆点费用流
  9. 可以买的一本书:3D计算机图形学(原书第3版)
  10. 学习Java的相关知识