3

XMLHttpRequest 経由でファイルをアップロードしようとしています。input以下のステートメントを使用してwith typeset toを作成しfile、ファイル データを取得します。

var files = document.getElementById("fileInput").files;
var file = files[0];
var formData = new FormData();
formData.append("fileInput", file);
.
.
.
xhr.send(formData);

これはうまくいきます!しかし、を使用するときは、次のdojox.form.Uploaderようにします。

var files = dijit.byId("dojoFileInput").getFileList();
var file = files[0];
var formData = new FormData();
formData.append("dojoFileInput", file);
.
.
.
xhr.send(formData);

これはうまくいきませ!オブジェクトで追加データを送信する必要があるため、 のupload機能を使用できません。このステートメントを使用して dojo ファイルアップローダーを作成していますdojox.form.UploaderFormData

<div dojoType="dojox.form.Uploader" label="Select files..." id="dojoFileInput"></div>

次のステートメントを使用して、コンソールにファイル データを出力しようとしました。

console.log(document.getElementById("fileInput").files[0]); // Normal file input
var files = dijit.byId("dojoFileInput").getFileList(); // Dojo file input
console.log(files[0]);

通常のファイル入力では、次の出力が得られます (実際には、各セクションの下にこれよりも多くの情報がありますが、これは要約されています)。

File {webkitRelativePath: "", lastModifiedDate: Sat Nov 10 2012 19:42:45 GMT+0530 (India Standard Time), name: "<FILE NAME>", type: "image/png", size: 115661}
    lastModifiedDate: Sat Nov 10 2012 19:42:45 GMT+0530 (India Standard Time)
        __proto__: Invalid Date
        name: "<FILE NAME>"
        size: 115661
        type: "image/png"
        webkitRelativePath: ""
    __proto__: File
        constructor: function File() { [native code] }
        arguments: null
        caller: null
        length: 0
        name: "File"
        prototype: File
        toString: function toString() { [native code] }
        __proto__: Object
        <function scope>
    __proto__: Blob
        constructor: function Blob() { [native code] }
        slice: function slice() { [native code] }
        webkitSlice: function webkitSlice() { [native code] }
        __proto__: Object

しかし、Dojo ファイル アップローダーは 1 行しか出力しません。

Object {index: 0, name: "<FILE NAME>", size: 115661, type: "image/png"}

Dojo は、サーバーに送信できるファイルの詳細全体を提供しませんか? これは、Dojo ファイル アップローダーを使用してサーバーにファイルを送信する正しい方法ですか? 彼がどのようにできるかについてのアイデアはありますか?

4

1 に答える 1

1

アップローダには、投稿データを追加できるsubmitメソッドがあります。

于 2013-01-02T01:24:46.437 に答える