バックエンドに大きなファイルをアップロードするためのWebページ
###前端代码
< ボディ> < 入力タイプ= "ファイル" 名= "ビデオ" ID = "ファイル" /> < 入力タイプ= "ボタン" クラス= "BTN BTN-INFO" ID = "サブ" 値=」提交」> < スクリプト> $(" #sub " ).on(" クリック" 、selfile送信ボタンをクリックしたときにアップロードされた())#トリガ 機能selfile(){ constのLENGTH = 1024 * 1024 * 10 ; //各アップロードのサイズ のvar ファイル= document.getElementsByName(' ビデオ' )[ 0 ] .files [ 0 ]; // ファイルオブジェクト のvar ファイル名= document.getElementsByName(' ビデオ' )[ 0 ] .files [ 0 ] .nameの; VAR totalSize = file.size; // 合計ファイルサイズ のvar 開始= 0 ; // 各アップロードの開始バイトのため のvar 終了= スタート+ LENGTH; //各アップロードバイトの端 VAR FD = NULL ; // フォームデータオブジェクトが作成 するvar BLOB = ヌル; // バイナリオブジェクト VARのXHR = NULL ; // XHRオブジェクト ながら(スタート< totalSize){ FD = 新しい新しいいるFormData()。// それぞれが再作成する必要が XHR = 新新)(XMLHttpRequestをし; //は、各パラメータの作成および設定する必要があります xhr.open(' POST ' 、' / QQQを/ ' 、falseに); BLOB = file.slice(開始、終了); // 取らたびにアップロードするデータの長さ fd.append(' file_data ' 、BLOBを); // オブジェクトのFDにデータを追加 fd.append(' ファイル名' 、ファイル名); // ファイルの名前を取得します fd.append(" FILE_SIZE " 、totalSizeを); xhr.send(FD); // データをアップロードするためには、fdが // 再設定の開始と終了 開始= 終了; 終了= 開始+ LENGTHを; } } </ スクリプト> </ ボディ>
##python后端路由视图函数代码: DEF QQQ(リクエスト): FILE_PATH = " :aa.txt C " オープン(FILE_PATHと" AB " :Fなど) のためのラインで request.FILES.get(" file_data " ) : f.write(ライン)
~~~抱擁へようこそ