java獲取網(wǎng)絡(luò)圖片上傳到OSS的方法
OSS不支持通過(guò)一個(gè)網(wǎng)絡(luò)地址來(lái)上傳圖片,所以若想將網(wǎng)絡(luò)上的圖片上傳到OSS上需要走點(diǎn)彎路。
1、通過(guò)鏈接將圖片下載到本地的一個(gè)文件夾下面
2、用OSS上傳該文件夾下的文件
3、上傳完成后刪除本地的文件
具體代碼如下:
//獲取當(dāng)前項(xiàng)目的絕對(duì)路徑 public static String getTomcatPath(){ String nowpath; String tempdir; nowpath=System.getProperty("user.dir"); tempdir=nowpath.replace("bin", ""); //把bin 文件夾變到 webapps文件里面 return tempdir; } /** * 將圖片下載下來(lái)后,上傳到OSS * @param imgLink * @param downloadPath * @return * @throws Exception */ private String downloadImagAndUploadToOss(String imgLink,String downloadPath) throws Exception{ List<String> urlList=new ArrayList<String>(); urlList.add(imgLink); String imgName=DateUtil.formatDate(new Date(), "yyyyMMddhhmmss")+UuidUtil.createUUID()+".jpg"; downloadPicture(urlList,downloadPath,imgName); String key="carAlbum/"+imgName; String imgUrl=OSSObjectAPI.genOssPicUrl(OSSObjectAPI.XI_AN_BUCKET_NAME,OSSObjectAPI.XIAN_ACCESS_ID,OSSObjectAPI.XIAN_ACCESS_KEY, "http://oss-cn-zhangjiakou.aliyuncs.com/",downloadPath+imgName,key); FileUtil.delete(downloadPath+imgName); return imgUrl; } /** * 傳入要下載的圖片的url列表,將url所對(duì)應(yīng)的圖片下載到本地 * @param urlList * @throws Exception */ private void downloadPicture(List<String> urlList,String path,String imgName) throws Exception { if(urlList==null||urlList.size()==0){ return; } URL url = null; FileOutputStream fileOutputStream =null; InputStream inputStream =null; for (String urlString : urlList) { try { url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.addRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0"); connection.setConnectTimeout(10 * 1000); connection.setReadTimeout(15 * 1000); inputStream = connection.getInputStream(); byte[] buffer = new byte[1024]; int length; fileOutputStream= new FileOutputStream(path+ File.separator+ imgName); while ((length = inputStream.read(buffer)) != -1) { fileOutputStream.write(buffer, 0, length); } } catch (Exception e) { e.printStackTrace(); } finally{ inputStream.close(); fileOutputStream.flush(); fileOutputStream.close(); } } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java實(shí)現(xiàn)整合文件上傳到FastDFS的方法詳細(xì)
- Java實(shí)現(xiàn)圖片上傳至FastDFS入門(mén)教程
- Java 客戶(hù)端操作 FastDFS 實(shí)現(xiàn)文件上傳下載替換刪除功能
- Java fastdfs客戶(hù)端實(shí)現(xiàn)上傳下載文件
- Java使用OSS實(shí)現(xiàn)上傳文件功能
- Java下載https文件并上傳阿里云oss服務(wù)器
- Java微信小程序oss圖片上傳的實(shí)現(xiàn)方法
- java實(shí)現(xiàn)上傳文件到oss(阿里云)功能示例
- Java實(shí)現(xiàn)Fast DFS、服務(wù)器、OSS上傳功能
相關(guān)文章
Java基礎(chǔ)將Bean屬性值放入Map中的實(shí)例
這篇文章主要介紹了Java基礎(chǔ)將Bean屬性值放入Map中的實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-07-07SpringBoot解析JSON數(shù)據(jù)的三種方案
JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式,易于人閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成,本文給大家介紹了SpringBoot解析JSON數(shù)據(jù)的三種方案,需要的朋友可以參考下2024-03-03Java 將List中的實(shí)體類(lèi)按照某個(gè)字段進(jìn)行分組并存放至Map中操作
這篇文章主要介紹了Java 將List中的實(shí)體類(lèi)按照某個(gè)字段進(jìn)行分組并存放至Map中操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10Java設(shè)計(jì)模式之外觀模式的實(shí)現(xiàn)方式
這篇文章主要介紹了Java設(shè)計(jì)模式之外觀模式的實(shí)現(xiàn)方式,外觀模式隱藏系統(tǒng)的復(fù)雜性,并向客戶(hù)端提供了一個(gè)客戶(hù)端可以訪(fǎng)問(wèn)系統(tǒng)的接口,這種類(lèi)型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它向現(xiàn)有的系統(tǒng)添加一個(gè)接口,來(lái)隱藏系統(tǒng)的復(fù)雜性,需要的朋友可以參考下2023-11-11SpringBoot登錄、退出、獲取用戶(hù)信息的session處理方案
這篇文章主要介紹了SpringBoot登錄、退出、獲取用戶(hù)信息的session處理,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08SpringBoot+MybatisPlus+Mysql+Sharding-JDBC分庫(kù)分表
本文主要介紹了SpringBoot+MybatisPlus+Mysql+Sharding-JDBC分庫(kù)分表,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03