複数のファイルパイソンをアップロード

楽屋

輸入JSON 
django.shortcutsからレンダリング、HttpResponseに、HttpResponseRedirectインポート
インポートのOS 
インポートのJSON 
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__ FILE__)))

デフ(要求)をアップロードします。

    request.method場合== 'GET':
        リターンは(要求、 'form.html')をレンダリングし
    、他:
        FILE_NAME = request.POST.get( 'ユーザー')
        PWD = request.POST.get( 'PWD')
        file_obj = request.FILES.get ( 'ファイル')

        、F =オープン(os.path.join(BASE_DIR、 '静的'、 '画像'、file_nameに+ 'PNG')、 'WB') プリント(file_obj、タイプ(file_obj))

        file_objにおけるチャンクの.chunks():
            F。書き込み(チャンク) 
            f.close()

    MSG = { 
        'ステータス':真、
        'MSG': '上传成功'、
        'fileNameに':FILE_NAME、
        'PWD':PWD 
    } 
    戻りのHttpResponse(json.dumps(MSG))

デフmorefiles(リクエスト):
    request.methodもし== 'GET':
        リターン(要求、 'morefile.html')レンダリング
    他:
        FILE_NAME = request.POST.get( 'ユーザ名')
        PWD = request.POST.get( 'パスワード') 获取单个文件
        #file_obj = request.FILES.get( 'ファイル')
        プリント(file_nameに、PWD) 获取多个文件对象
        ファイル= request.FILES.getlist( 'ファイル') 
        プリント(ファイル)
        ファイル内のfに対する:
            
            先=オープン(os.path.join(BASE_DIR、 '静的'、 '画像'、f.name)、 '+ WB')
            f.chunksにおけるチャンクの():
                destination.write(チャンク)
            destination.close()

        MSG = { 
            'ステータス' 200、
            'MSG': '上传成功' 
            # 'fileNameに':FILE_NAME、 'PWD':PWD 
        } 
        戻りのHttpResponse(json.dumps(MSG))

 フロント

<HTML> 
<HEAD> 
    <TITLE>ログインテスト</ TITLE> 
    <META HTTP-当量= "Content-Typeの"コンテンツ= "text / htmlの;のcharset = UTF-8"> 
    <META HTTP-当量= "プラグマ"コンテンツ= "ノーキャッシュ"> 
    <META HTTP-当量= "キャッシュ・コントロール"コンテンツ= "ノーキャッシュは"> 
    <META HTTP-当量=内容= "0"> "無期限" 
    <META HTTP-当量= "キーワードを"コンテンツ= "KEYWORD1、KEYWORD2、KEYWORD3"> 
    <META HTTP-当量= "説明"コンテンツ= "AJAX方式"> 
<! - <スクリプトSRC = "http://apps.bdimg.com/libs/jquery/2.1 0.4 / jquery.min.js "> </ SCRIPT> - > 
    <スクリプトSRC =" HTTPS://ajax.aspnetcdn。COM / AJAX / jqueryの/ jqueryの-1.8.3.min.js "> </ SCRIPT> 
    <スクリプトタイプ="テキスト/ javascriptの"> 
        $は、(関数(){ 
            、Filelistをせ= [];
            聞かせてファイル=の$( "#ファイル"); 
            files.on( "変更"、関数(イベント){ 
                ため(VAR i = 0; iはファイルを[0] .files.lengthを<; Iは++){ 
                    fileList.push(ファイル[0] .files [I]); 
                } 
                console.log(のfileList)
            })。

            。$( "#ログイン")をクリックします(関数(){ 
                FORMDATA =新しいいるFormDataを()しましょう。
                fileList.forEach(機能(ファイル、インデックス){ 
                    ; formData.append( 'ファイル'、ファイル、file.name)
                )} 
                formData.append( "userNameに"、$( "#userNameを")。valを())
                formData.append( "パスワード"、$(」
 
                    //几个参数需要注意一下
                    タイプ: "POST"、//メソッドの型
                    データ型: "JSON"、//サーバから返されたデータの期待タイプ
                    URL: "/ morefiles /"、URL // 
                    データ:FORMDATA、
                    contentTypeの:falseに、
                    PROCESSDATA:falseに、
                    成功:機能(結果){ 
                        にconsole.log(結果); //印刷データは、(デバッグのために)サーバから返される
                        (== 200 result.resultCodeある){IF 
                            アラート( "成功"); 
                        } 
                        ; 
                    }、
                    エラー:関数(){ 
                        警告( "異常!");
                    }
                }); 
            })
        })

    </ SCRIPT> 
</ head> 
<body> 
<DIV ID = "フォームDIV"> 
    <フォームID = "Form1の"をonSubmit = "falseを返す" ACTION = "/" METHOD = "POST"のenctype = "マルチパート/フォームデータ"> 
        <P>用户名:<入力されたID = "userNameに" NAME = "userNameに"タイプ= "テキスト" ID = "txtUserName"タブインデックス= "1"サイズ= "15"値= "" /> </ P> 
        <P>密码:<INPUT ID = "PWD" NAME = "パスワード"タイプ= "パスワード" ID = "TextBox2を"タブインデックス= "2"サイズ= "16"値= "" /> </ P> 
        <P>附件:<入力されたID =」
</ BODY> 
</ HTML>

  

おすすめ

転載: www.cnblogs.com/qq735675958/p/11403932.html