AjaxのファイルのアップロードいるFormDataを使用する必要があります
公式の紹介
キーと値のペアのオブジェクトデータにコンパイルFORMDATA使用するXMLHttpRequest
データを送信します。データを送信するためのメインフォームが、(キー付きデータ)キー入力データを送信するために使用され、独立した形で使用することができます。フォームの場合enctype
属性がに設定にmultipart / form-data 、フォームが使用されるsubmit()
送信データが同じ形状を有することにより、データ伝送方法のために。
リンク:https://developer.mozilla.org/zh-CN/docs/Web/API/FormData/Using_FormData_Objects
あなた自身の簡単な例を書きます:
htmlの一部:
< 本体> < フォームアクション= "/" のenctype = "マルチパート/フォームデータ" ID = "フォーム" > 姓名:< 入力タイプ= "テキスト" 名前= "ユーザ名" ID = "" > < BR > 年龄:< 入力タイプ= "テキスト" 名前= "年齢" ID = "" > < BR > < BR > 本人照片:< 入力タイプ=」「ファイル名"=" IMG IDを"="値= "选择照片" > < BR > < BR > < 入力タイプ= "ボタン" 値= "确认提交" 名前= "BTN" ID = "BTN" > </ フォーム> </ ボディ> < スクリプトSRC =」 ./jquery.js」> </ スクリプト> < スクリプト> $(' #btn ' )。クリックして( 関数(){ // 使用FORMDATAフォーム全体のデータパッケージ VAR inpData = 新新いるFormData(のdocument.getElementById(' フォーム' )); $アヤックス({ URL:' HTTP://ソウル:7777 /ファイル' 、 種類:' POST ' 、 contentTypeの:falseに、 データ:inpData、// としてラベル直接送信できるパケットの送信 PROCESSDATAを:falseに、 成功:機能(データを){ IF (データ){ アラート(「成功」) } 他{ アラート(' 失敗' ) } } }) }) </ スクリプト>
JSファイルサーバは、私たちは、文書やその他のデータに対処するために手ごわい受信モジュールを使用する必要があります。
コードのJS一部:
VARのhttp =( 'HTTP'に必要)。 VaRの FSの=は( 'FS'が必要です)。 VaRのサーバー= http.createServer(); server.listen( '7777'、関数(){ にconsole.log( '欢迎来到6的世界' ); }); server.on( '要求'、関数(REQ、RES){ res.setHeader( 'アクセス制御-許可原点'、 '*' ); 場合(req.url == '/ファイル' ){ VARの FD =必要( 'C:/ユーザー/管理者/のAppData /ローミング/ NPM / node_modules /手強い' ); VARのフォーム= 新しいですfd.IncomingFormは(); // ファイルが文字を横切って移動された場合も、デフォルトのCドライブで、事前にファイルのパスをアップロードする必要が form.uploadDir = 'E:/ IMG' ; form.parse(REQ、機能(ERR、フィールズ、ファイル){ // はconsole.log(filds); //フォームデータ // にconsole.log(ファイル); //データアップロードファイル // 指定したディレクトリにファイルをアップロードする必要が fs.rename(files.img .path、 './img/' + files.img.name、関数(ERR){ // JSONデータを解析取得 fs.readFile( './ db.json'、 'UTF8'、関数(ERR、json_str) { VARの json_arrは= JSON.parse(json_str); //新しいデータを組み立てる // ID IDがアレイ+ 1の最後の要素を取得すると、新しいアレイのID値である fields.id = json_arr [json_arr.length - 1] + 1 .ID ; //は、良好な画像アドレスプラス移動します新しいデータどの fields.img =「/ IMG /」+ files.img.name; // 新しいデータは、アレイに追加さ json_arr.push(フィールド); // バック文字列ファイル書き込みjosn用にアレイ FS。 WRITEFILE( './ db.json'、JSON.stringify(json_arr)、関数(ERR){ IF(!ERR){ // リターンメッセージ res.end(」1' ); } そう{ res.end( '0' )。 } })。 }); }); }); } })。
マルチファイルアップロード入力する必要があります:ファイルのラベルには、属性を追加multiple="multiple
「(オンラインを参照)
概要:
キーはファイルAJAX FORMDATAオブジェクトをアップロードするために使用され、サーバ鍵は手強い技術的なデータ処理モジュールであり、ファイルの追加や削除、その後JSON。