需求可以不看

需求:

接到需求是:前端传一个id,根据id去数据库里找图片保存地址,图片真实路径,和数据库保存路径不一致,所以路径要自己拼接。

这是真实图片路径

数据库存储路径 

可看出后缀不一样,大小写没关系

测试又多了个前缀

一、下载图片到本地

1.直接上代码

import cn.hutool.core.lang.UUID;
import java.util.*;
import org.apache.commons.lang.StringUtils;
import lombok.SneakyThrows;
import com.egao.common.core.exception.BusinessException;
import java.io.*;@SneakyThrows@Overridepublic void downLoadPanorama(String id) {//根据前端传的id去数据库找对应图片信息Panorama panorama = panoramaDao.selectById(id);//获取图片地址String bImageNew = panorama.getBImageNew();//截取掉..String substring = bImageNew.substring(2);//截取最后一个\\之前的路径String s = org.apache.commons.lang3.StringUtils.substringBeforeLast(substring, "\\");//设置后缀String suffix = "\\pano.JPG";//由于string拼接效率较低,换种玩法StringBuilder builder = new StringBuilder();//数据库的路劲不对,要组装路径builder.append("src\\main\\resources\\static\\panorama").append(s).append(suffix);FileInputStream inputStream = null;try{inputStream = new FileInputStream(String.valueOf(builder));}catch (Exception e){throw new BusinessException("图片不存在");}StringBuffer stringBuffer = new StringBuffer();//组装下载路径,利用uuid可以重复下载多次,防止覆盖StringBuffer downLoadPath = stringBuffer.append("E:\\").append(java.util.UUID.randomUUID().toString()).append(".jpg");File file = new File(String.valueOf(downLoadPath));if(!file.exists()){file.createNewFile();}FileOutputStream outputStream = null;try {outputStream = new FileOutputStream(file);} catch (FileNotFoundException e) {throw new BusinessException("图片太大");}byte[] bytes = new byte[1024];int length;while((length=inputStream.read(bytes)) !=-1){outputStream.write(bytes);}outputStream.close();inputStream.close();}

2.测试如下

重复下载:

@RunWith(SpringRunner.class)
@SpringBootTest
public class RGisApplicationTests { @Resourceprivate PanoramaService panoramaService; @Testpublic void text() {panoramaService.downLoadPanorama("fh-620326c7bfca2552486f3bd9");}
}


总结

接到这个新功能,经过分析、查资料、调试、最终呈现出来的效果。

根据不同的业务场景,逻辑可能稍有变动,核心代码不变。

Java实现下载图片到本地相关推荐

  1. java下载图片到本地,例如从网上下载图片,下载淘宝图片,下载百度图片等

    java下载图片到本地,例如从网上下载图片,下载淘宝图片,下载百度图片. 直接上代码如下: public static void download(String url,String saveFile ...

  2. swift 将图片保存到本地_如何保存微博的所有图片链接并下载图片到本地

    点击上方 月小水长 并 设为星标,第一时间接收干货推送 这是 月小水长 的第 47 篇原创干货 对于一个爬虫,其爬取的目标不仅限于文字,图片.语音.视频均有可能,我开源的微博爬虫之话题爬虫,设定之初就 ...

  3. php导出照片,TP5导出excel图片和数据--先下载图片到本地服务器

    ## :-: TP5导出excel图片和数据--先下载图片到本地服务器 ~~~ public function Export( ) { set_time_limit(0); ini_set('memo ...

  4. 一、uniapp项目(封装异步请求、moment.js时间处理、封装手势滑动组件、下载图片到本地)

    一.封装异步请求: 1. 为什么要封装? 2. 封装的思路 export default (params) => {// 显示加载中uni.showLoading({title: "加 ...

  5. 【python】根据pixiv网站的图片url下载图片到本地

    写在前面 pixiv是著名的插画网站.如果我们通过爬虫技术得到了pixiv网站图片的url,那么如何根据url下载图片到本地. 安装模块 pip install requests 测试样例 打开以下页 ...

  6. php img本地图片路径,php 替换文章中的图片路径,下载图片到本地服务器的方法

    php 替换文章中的图片路径,下载图片到本地服务器 /** * 获取替换文章中的图片路径 * @param string $xstr 内容 * @param string $oriweb 网址 * @ ...

  7. JS下载图片到本地,解决跨域问题

    说下需求,点击按钮,实现下载图片到本地的功能,后台返回的url是阿里oss存储图片的地址,一开始只能预览图片,再后来受同源策略影响,依旧不能实现,但是在生成的图片后拼接?time=当前时间戳就可以实现 ...

  8. html5 canvas手写画板 下载图片至本地

    html5 canvas手写画板 下载图片至本地 <!DOCTYPE html> <html><head><meta charset="utf-8& ...

  9. Android 手机下载图片保存本地后,系统相册无法查看

    下载图片到本地,由于没有通知系统相册,更新数据,导致系统相册无法找到这张图片. 处理方法一:已知图片保存地址,通过广播通知系统相册, 更新数据. public static void sendBroa ...

最新文章

  1. 搭建turnserver
  2. JavaIO操作(1)字节流和字符流-1
  3. [论文笔记] Fast Quality Driven Selection of Composite Web Services (ECOWS, 2006)
  4. UWP 矢量字体图标(iconfont)使用
  5. 这些 Linux 的 “自动化” 技巧,教你轻松完成任务
  6. The Preliminary Contest for ICPC Asia Nanjing 2019ICPC南京网络赛
  7. 面试题 - 两个页面间如何传递数据
  8. SpringBoot简要
  9. java 删除桌面快捷方式_能否在桌面创建快捷方式运行java程序?
  10. debian开机打开浏览器_使自動起動! 我学到了!原来“文件”可以跟“应用程序”一样,都能设置开机自启!!...
  11. mac 上 php 验证码不显示图片
  12. bsvadvaanjalvsc
  13. ActivityGroup 缓存
  14. 计算机桌面无法新建文件夹,桌面新建的文件、文件夹都无法显示
  15. 【金万维】天联高级版的管理员帐号和密码忘记
  16. Python翻译Excel文件
  17. 指令集并行——vliw和超标量cpu
  18. 毕业生见习期考核鉴定表(单位考核意见)
  19. python爬虫 提取豆瓣Top250电影信息
  20. Unity中计算面法线与顶点法线

热门文章

  1. 如何在 VirtualBox 中安装 SteamOS
  2. 中国“芯”崛起 安防产业链格局是否将改变?
  3. 【华为OpenEuler】VirtualBox虚拟机与OpenEuler环境搭建教程
  4. 神经网络算法有哪些模型,常用的神经网络模型
  5. 智慧水利在线监测移动平台(Axure高保真原型)
  6. Php禁止外部盗链nginx,php如何禁止外部盗链
  7. win10打印机0x8007007e无法_win10 0x8007007e|win10系统0x8007007e错误解决方法
  8. 【愚公系列】2022年02月 微信小程序-sitemap站内搜索
  9. WPF依赖属性(二)
  10. 新编大学计算机基础教程txt,新编大学计算机基础教程新大学计算机基础教程.doc...