c 用Base64實現檔案上傳

2022-09-26 11:15:11 字數 1369 閱讀 1197

base64是網路上最常見的程式設計客棧用於傳輸8bit位元組碼的編碼方式之一,它是一種基於64個可列印字元來表示二進位制資料的方法。

使用base64進行檔案上傳的具體流程是:前台使用js將檔案轉換為base64格式,後台通過高階程式語言,將baswww.cppcns.come64格式的檔案,轉換為原檔案。下面就來演示一下,c#語言配合js,如何實現的base64格式上傳與解析儲存。

首先看一下前台是如何將檔案讀取到的,請先看如下js**:

var dataforup = "";

var reader = new filereader(); //宣告檔案讀取物件

//宣告檔案讀取完畢後呼叫的方法,通過this.result獲取到轉換的資料物件

reader.onload = function () ;

//當使用者選擇檔案後,進行轉換資料的操作

$("#file").change(function () );

檔案的讀取,需要借助於filereader這個物件,dataforup用於儲存base64原始碼。#file該id對應檔案選擇標籤。

filereader物件有個onload事件,當讀取檔案的時候(或者說呼叫readasdataurl方法後),會觸發此事件,base64轉換的原始碼就存在於它的result屬性中。

下面具體解釋一下上述**:

當使用者選擇檔案後,使用filereader物件讀取檔案,讀取後自動轉換為base64格式,然後觸發該物件的onload方法,將轉換後的base64原始碼儲存下來。

這樣我們就拿到了base64格式的檔案原始碼,通過ajax,就可以將檔案傳送到後台。

接下來看一下後台是如www.cppcns.com何解析並儲存的:

public string s**eimgbasesixfour(string img,string obj)

string result = img;

int index = -1;

www.cppcns.com //判斷是不是base64檔案型別

index = img.indexof("base64,");

if (index != -1) }

}base64原始碼的基本模型是 data:image/png;base64,...檔案碼...=

data標識檔案型別,緊接著base64,開頭的檔案原始碼最後以=結束,所以解析的時候要去掉開頭這一部分,本案例副檔名是寫死的,ynbkghz也可以通過base64檔案頭去獲取的副檔名,此處不再詳細介紹。

解析一下**流程:

判斷檔案是否為空,然後獲取到真正資料的開始索引,然後呼叫convert.frombase64string方法將base64轉換為原檔案,然後通過檔案流將記憶體中儲存的檔案資料真實儲存到本地​。具體使用方法,讀者可自行查閱官方文件,此處不再贅述​。

用C 實現Base64演算法

using system using system.text namespace common catch return encode base64加密,採用utf8編碼方式加密 待加密的明文 加密後的字串 public static string encodebase64 string sourc...

用C 實現Base64演算法

using system using system.text namespace common catch return encode base64加密,採用utf8編碼方式加密 待加密的明文 加密後的字串 public static string encodebase64 string sourc...

將檔案轉為base64上傳

利用elementui的upload元件,實現檔案上傳 附件管理 附件上傳之前執行的函式 onchange2 v this.name str this.uploadcomput let promise new promise resolve return promise 檔案上傳成功的鉤子 uplo...