html 5大ファイルアップロード技術(一)

5474 ワード

必要:
1、大きなファイル(ファイルサイズに制限がない)のwebアップロード;
2、アップロードの進捗バーを表示し、ブレークポイントで継続する.
3、マルチファイルリストのアップロード;
4、MD 5ファイルチェック.
開発環境:Visual Studio 2017
言語:C#
技術のポイント:
1、AJAXは、ウェブページ全体を再ロードすることなく、一部のウェブページを更新できる技術である.
$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success,
  dataType: dataType
});
        
AJAX技術を使用するにはjquery-3.2.1を追加する必要がある.js参照、;




2,FormDataオブジェクト



   


利用オブジェクトは、JavaScriptfont-size:14 px=">キー値ペアでフォームコントロールをシミュレートします.また、XMLhttpRequestsens>Ajaxを結合し、FormDataを使用できる最大の利点は、FormDataを使用できることである.バイナリファイルを非同期でアップロードします.




は、newキーワードから空のFormDataオブジェクトを作成することができます.次にappend()メソッドを使用してオブジェクトにフィールドを追加します(フィールドの値はBlobオブジェクト、Fileオブジェクト、文字列であってもよく、残りのタイプの値は自動的に文字列に変換されます).span>




AjaxおよびFromDataを利用した簡単なファイルアップロードの例


クライアントコード:


  


    
    

function up_file() { var select_files = document.getElementById("File1"); if (select_files.files.length < 1) { // alert(' !'); return; } var formData = new FormData();// ,FormData HTML5 formData.append('file', $('#File1')[0].files[0]);// <input id="File1" type="file" /> formData.append('filename', $('#File1')[0].files[0].name); // $.ajax({ url: '/File/up.aspx', type: 'POST', cache: false, data: formData, processData: false, contentType: false }).done(function () { $("#output").text(" !"); }) .fail(function () { $("#output").text(" !"); }); }

up.aspx

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


public partial class File_up : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string msg = "";
        try
        { // Request    ,        Requst.Files 
            string name = Request["name"];
            var data = Request.Files["data"];
            string dir = Server.MapPath("~/Upload");
            string filen_part_name = Path.Combine(dir, name); //             
            data.SaveAs(filen_part_name);
            msg = "ok";//    
        }
        catch (Exception)
        {
            msg = "error";//    
        }
        Response.Write(msg);
    }
}