cxiはBase 64でファイルアップロードを実現します。


Base 64は、ネットワーク上で最も一般的な8 Bitバイトコードを伝送する符号化方式の一つであり、64個の印刷可能文字に基づいてバイナリデータを表す方法である。
    base 64を使ってファイルをアップロードする具体的な流れは、フロントがjsを使ってファイルをbase 64フォーマットに変換し、バックグラウンドが高度なプログラミング言語を通じてbase 64フォーマットのファイルを元のファイルに変換することです。以下では、C〓〓言語はjsに協力して、どのように画像のbase 64フォーマットのアップロードと解析保存を実現しますか?
    まずフロントがどうやってファイルを読み取ったかを見てください。まず下記の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はbase 64のソースコードを保存するために使用されます。このIDはファイルに対応してタグを選択します。
    FileReaderオブジェクトはonloadイベントを持っています。ファイルを読み込む時(またはreadAdata URL方法を呼び出した後)、このイベントをトリガします。base 64変換のソースはそのreult属性に存在します。
    上記のコードを具体的に説明します。
    ユーザーがファイルを選択した後、FileReaderオブジェクトを使ってファイルを読み取り、読み取った後に自動的にbase 64フォーマットに変換し、オブジェクトのonload方法を触発し、変換されたbase 64ソースを保存します。
    このように私達はbase 64フォーマットのファイルのソースコードを得て、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);
  }
 }
}
    base 64ソースの基本モデルはdata:image/pngです。base 64,…ファイルコード...=
    dataマークファイルのタイプは、base 64に続いて、最初のファイルのソースコードは最後に=で終了しますので、解析の際に最初の部分を削除します。この判例画像の拡張子は書き込みが死んだので、base 64ファイルのヘッダを通じて画像の拡張子を取得することもできます。ここでは詳しく紹介しません。
    コードの流れを解析します。
    ファイルが空かどうかを判断して、本当のデータの開始インデックスを取得し、Covert.FroomBase 64 String方法を呼び出してbase 64を元のファイルに変換し、ファイルフローを通じてメモリに保存されているファイルデータを実際にローカルに保存します。具体的な使い方は、読者が自分で公式文書を閲覧することができます。ここでは詳しく説明しません。
以上はcxi Base 64でファイルアップロードの詳細を実現しました。cxi Base 64ファイルアップロードに関する資料は他の関連記事に注目してください。