使用base64位實現圖片的上傳和下載
package com.example.futest; import java.io.InputStream; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class Base64Utils { public static void main(String[] args) throws Exception { //本地圖片地址 String url = "/Users/fuchangshuai/Desktop/hb/download/1.jpg"; String str = Base64Utils.ImageToBase64ByLocal(url); System.out.println(str); //將本地圖片生成的base64位轉換成圖片 Base64Utils.Base64ToImage(str,"/Users/fuchangshuai/Desktop/hb/download/2.jpg"); //線上圖片地址 String line = "http://bpic.588ku.com//element_origin_min_pic/17/03/03/7bf4480888f35addcf2ce942701c728a.jpg"; String online = Base64Utils.ImageToBase64ByOnline(line); System.out.println(online); //將線上圖片生成的base64位轉換成圖片 Base64Utils.Base64ToImage(online, "/Users/fuchangshuai/Desktop/hb/download/3.jpg"); } /** * 本地圖片轉換成base64字串 * @param imgFile 圖片本地路徑 * @return */ public static String ImageToBase64ByLocal(String imgFile) {// 將圖片檔案轉化為位元組陣列字串,並對其進行Base64編碼處理 InputStream in ; byte[] data = null; // 讀取圖片位元組陣列 try { in = new FileInputStream(imgFile); data = new byte[in.available()]; in.read(data); in.close(); } catch (IOException e) { e.printStackTrace(); } // 對位元組陣列Base64編碼 BASE64Encoder encoder = new BASE64Encoder(); if (null == data){ return null; } return encoder.encode(data);// 返回Base64編碼過的位元組陣列字串 } /** * 線上圖片轉換成base64字串 * * @param imgURL 圖片線上路徑 * @return */ public static String ImageToBase64ByOnline(String imgURL) { ByteArrayOutputStream data = new ByteArrayOutputStream(); try { // 建立URL URL url = new URL(imgURL); byte[] by = new byte[1024]; // 建立連結 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5000); InputStream is = conn.getInputStream(); // 將內容讀取記憶體中 int len = -1; while ((len = is.read(by)) != -1) { data.write(by, 0, len); } // 關閉流 is.close(); } catch (IOException e) { e.printStackTrace(); } // 對位元組陣列Base64編碼 BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(data.toByteArray()); } /** * base64字串轉換成圖片 * @param imgStr base64字串 * @param imgFilePath 圖片存放路徑 * @return */ public static boolean Base64ToImage(String imgStr,String imgFilePath) { // 對位元組陣列字串進行Base64解碼並生成圖片 if (imgStr == null || imgStr.equals("")) // 影象資料為空 return false; BASE64Decoder decoder = new BASE64Decoder(); try { // Base64解碼 byte[] b = decoder.decodeBuffer(imgStr); for (int i = 0; i < b.length; ++i) { if (b[i] < 0) {// 調整異常資料 b[i] += 256; } } OutputStream out = new FileOutputStream(imgFilePath); out.write(b); out.flush(); out.close(); return true; } catch (Exception e) { return false; } } }
相關推薦
cool-2018-01-17-java+nginx+ftp實現圖片上傳和下載
<!-- Apache工具元件 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>c
django實現圖片上傳和顯示
代碼 ngs 文件路徑 ont 添加 pac pre bubuko contex 首先安裝pillow模塊 在models.py下設置 class Notices(models.Model): NoticeCategory=models.CharField(max_
純前端表格控制元件SpreadJS與Java結合,實現模板上傳和下載等功能
安裝部署: 開發環境: 後臺伺服器端採用 Java 、SpringMVC。 資料儲存到 \demo_web\WEB-INF\FileDatabase.txt 檔案中,不需要依賴DB。 採用 Eclipse Java EE IDE for Web Develope
[Python] socket實現TFTP上傳和下載
一、說明 本文主要基於socket實現TFTP檔案上傳與下載。 測試環境:Win10/Python3.5/tftpd64。 tftpd下載:根據自己的環境選擇下載,地址 :http://tftpd32.jounin.net/tftpd32_download.html 主要內容:TFTP
ASP.NET實現檔案上傳和下載
###### 本文的開發配置 ###### .NET版本:.NET Framework 4.0 開發環境:Microsoft Visual Studio 2013 瀏覽器:IE、Chrome、FireFox等都行 1、搭建網站結構 建立一個新的目錄
AJAX實現圖片上傳和預覽(傳統ajax與jQuery AJAX;帶圖片的表單提交)
一、通過Servlet3.0和傳統的AJAX實現圖片上傳和預覽 此方法也適用於帶圖片的表單提交 上傳時預覽圖片  
flask圖片上傳和下載
圖片上傳和顯示 上傳儲存 def save_to_local(file, file_name): save_dir = app.config['
Java實現檔案上傳和下載
上面的博文我寫了Java對檔案操作的功能https://blog.csdn.net/qq_24380635/article/details/83273359,這次記錄一下檔案上傳和下載的功能。看看兩者有什麼不同,就可以知道檔案操作和檔案上傳下載有什麼不同了。我也是一點點懂,也
Android Retrofit2.0實現檔案上傳和下載
這篇主要介紹retrofit框架的上傳檔案到伺服器和從伺服器下載功能的實現 上傳檔案到伺服器 首先 retrofit2.0之前上傳檔案到伺服器需要一個叫TypedFile這個類,但是在2.0版本,這個類被取消了,因為2.0以後,retrofit內部集成了okhttp
spring實現檔案上傳和下載 完整方案
1. 簡介 提供基於spring實現檔案(筆記附件)的上傳和下載的完整方案。方案將檔案上傳,並將檔名稱作為欄位與關聯的筆記繫結在一起,更新筆記在資料庫中的記錄。顯示筆記時,根據筆記所繫結的檔名生成下載
layui實現圖片上傳 和 預覽功能
效果如下: HTML 的程式碼: <div class="box" style="width: 180px;float: left;"> <div class="layui-upload"> <div class="layui-ro
SpringBoot實現檔案上傳和下載
SpringBoot後臺如何實現檔案上傳下載? 最近做的一個專案涉及到檔案上傳與下載。前端上傳採用百度webUploader外掛。有關該外掛的使用方法還在研究中,日後整理再記錄。本文主要介紹SpringBoot後臺對檔案上傳與下載的處理。 單檔案上傳 // 單檔案上傳 @RequestMapp
django 實現圖片上傳和顯示操作
版本: django 2.0.1 python 3.6.2 準備工作: pip install pillow 安裝python圖片處理庫 pillow pip
Retrofit實現檔案上傳和下載【二】
概述 通過前一篇的部落格介紹,我們已經對Retrofit的使用有了一個大概的瞭解,今天來講講利用Retrofit進行檔案的上傳和下載 檔案上傳 伺服器使用的是SSH框架,因此這裡是以struts2的方式來獲取資料的,我這裡定義了三個欄位用來接收上傳過來
基於tobato的fastdfs與spring boot整合實現檔案上傳和下載
專案結構: pom.xml檔案新增配置: <!-- fastdfs --> <dependency> <groupId>com.github.tobato</groupId> <artifactId>fastd
ser-U區域網圖片上傳和下載程式碼
springboot整合ftp配置及工具類 1,使用serv-U安裝 ftp 伺服器,測試安裝是否成功 安裝下載,官網地址:http://www.serv-u.com.cn/ 2,在 springboot的 resources下加入配置檔案ftp.properties,配置如下: 加入j
如何在基於Java的Web專案中實現檔案上傳和下載?
在Sevlet 3 以前,Servlet API中沒有支援上傳功能的API,因此要實現上傳功能需要引入第三方工具從POST請求中獲得上傳的附件或者通過自行處理輸入流來獲得上傳的檔案,我們推薦使用Apac
在SpringMVC框架中實現檔案上傳和下載
首先在springmvc.xml中配置檔案上傳的屬性 <!-- 檔案上傳的屬性值 --> <bean id="multipartResolver" class="org.springframework.web.multi
使用springMVC實現檔案上傳和下載之檔案下載
接上一篇,檔案下載需要獲取下載檔案的儲存路徑,這裡只是手動填入,如果是在具體專案中,可以把檔名和上傳後的儲存路徑儲存在資料庫中。然後增加一個檔案列表的頁面展示檔名和檔案路徑,然後點選下載的時候把相應的
springmvc實現檔案上傳和下載
springmvc實現檔案上傳的步驟: 1.頁面上,通過input來準備file元件,該標籤,必須給定name屬性值(該name不能和實體類的屬性名一致)同時,要求form表單必須給定一個屬性:enctype="multipart/form-data"<form a