中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c#用Base64實現文件上傳的方法

發布時間:2020-08-04 13:34:39 來源:億速云 閱讀:384 作者:小豬 欄目:開發技術

這篇文章主要講解了c#用Base64實現文件上傳的方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

    Base64是網絡上最常見的用于傳輸8Bit字節碼的編碼方式之一,它是一種基于64個可打印字符來表示二進制數據的方法。

    使用base64進行文件上傳的具體流程是:前臺使用js將文件轉換為base64格式,后臺通過高級編程語言,將base64格式的文件,轉換為原文件。下面就來演示一下,C#語言配合js,如何實現圖片的base64格式上傳與解析保存。

    首先看一下前臺是如何將文件讀取到的,請先看如下js代碼:

var DataforUp = "";
 var reader = new FileReader(); //聲明文件讀取對象
//聲明文件讀取完畢后調用的方法,通過this.result獲取到轉換的數據對象
 reader.onload = function () {
  DataforUp = this.result;
 };
//當用戶選擇文件后,進行轉換數據的操作
 $("#file").change(function () {
  reader.readAsDataURL(this.files[0]);
 });

    文件的讀取,需要借助于FileReader這個對象,DataforUp用于保存base64源碼。#file該id對應文件選擇標簽。

    FileReader對象有個onload事件,當讀取文件的時候(或者說調用readAsDataURL方法后),會觸發此事件,base64轉換的源碼就存在于它的result屬性中。

    下面具體解釋一下上述代碼:

    當用戶選擇文件后,使用FileReader對象讀取文件,讀取后自動轉換為base64格式,然后觸發該對象的onload方法,將轉換后的base64源碼保存下來。

    這樣我們就拿到了base64格式的文件源碼,通過ajax,就可以將文件發送到后臺。

    接下來看一下后臺是如何解析并保存的:

public string SaveImgBaseSixFour(string img,string obj)
{
 if(img==null){
 return "數據為空";
 }
 string result = img;
 int index = -1;
 //判斷是不是base64文件類型
 index = img.IndexOf("base64,");
 if (index != -1)
 {
  index += 7;
 //將數據轉換為二進制字節數組
 var imgbit = Convert.FromBase64String(img.Substring(index));
 //生成文件名
 string imgname = DateTime.Now.ToString("yyyyMMddHHmmss") + ".jpg";
 //保存圖片
 using (Image image=Image.FromStream(new MemoryStream(imgbit)))
  {
   image.Save(_rootPath+imgname,ImageFormat.Jpeg);
  }
 }
}

    base64源碼的基本模型是 data:image/png;base64,...文件碼...=

    data標識文件類型,緊接著base64,開頭的文件源碼最后以=結束,所以解析的時候要去掉開頭這一部分,本案例圖片擴展名是寫死的,也可以通過base64文件頭去獲取圖片的擴展名,此處不再詳細介紹。

看完上述內容,是不是對c#用Base64實現文件上傳的方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大竹县| 自治县| 石林| 夹江县| 金阳县| 蓬溪县| 洛宁县| 侯马市| 盈江县| 宣城市| 山西省| 公安县| 米泉市| 木兰县| 潍坊市| 桑日县| 高雄市| 厦门市| 治县。| 左贡县| 广南县| 裕民县| 革吉县| 大方县| 东源县| 洪湖市| 洛宁县| 苏尼特左旗| 福安市| 鄂伦春自治旗| 东海县| 剑川县| 宜阳县| 绍兴县| 新营市| 江川县| 阜南县| 云龙县| 津南区| 嘉鱼县| 杭锦后旗|