0

3つのファイル入力があるWebページがあります。ユーザーがファイルをアップロードするときに送信する必要があるフォームの特定のフィールドがあります。POSTにカスタムデータを追加する方法と、サーバーにデータを取得する方法がわかりません。これは私のコードがどのように見えるかです:

3つのファイル入力とその他のテキストボックス/ドロップダウンを含むASPXページ:

<form action="FilesUploader.ashx" method="post">

    <div id="dvNewAttachment1">
        <span>Attachment Type</span>
        <select id="ddlAttachmentType1">
            <option>T1</option>
            <option>T2</option>
            <option>T3</option>
        </select>
        <span>Description</span>
        <input id="txtDesc1" />
        <select id="ddlApproval1">
            <option>Yes</option>
            <option>No</option>
        </select>
        <input id="fileUploader1" type="file" runat="server" />
    </div>
    <br />
    ---------------
    <div id="dvNewAttachment2">
        <span>Attachment Type</span>
        <select id="ddlAttachmentType2">
            <option>T1</option>
            <option>T2</option>
            <option>T3</option>
        </select>
        <span>Description</span>
        <input id="txtDesc2" />
        <select id="ddlApproval2">
            <option>Yes</option>
            <option>No</option>
        </select>
        <input id="fileUploader2" type="file" runat="server" />
    </div>
    <br />
    -------------------------------
    <div id="dvNewAttachment3">
        <span>Attachment Type</span>
        <select id="ddlAttachmentType3">
            <option>T1</option>
            <option>T2</option>
            <option>T3</option>
        </select>
        <span>Description</span>
        <input id="txtDesc3" />
        <select id="ddlApproval3">
            <option>Yes</option>
            <option>No</option>
        </select>
        <input id="fileUploader3" type="file" runat="server" />
    </div>


<input type="submit" />

</form>

これは私のハンドラーがどのように見えるかです:

public void ProcessRequest(HttpContext context)
        {

            HttpPostedFile myFile = context.Request.Files[0];

            int nFileLen = myFile.ContentLength;

            byte[] buffer = new byte[nFileLen];

            using (BinaryReader br = new BinaryReader(myFile.InputStream))
            {
                br.Read(buffer, 0, buffer.Length);
            }

        }

ご覧のとおり、アップロードは3つあり、それぞれに添付ファイルの種類と説明が関連付けられており、ハンドラーの入力ファイルごとに取得する必要があります。

現在、最初の入力からファイルを処理していますが、後で入力をループして処理します。

4

1 に答える 1

0

ハンドラーがファイルアップローダーに配置したファイルを受信しない場合、フォームには次のような追加の属性が必要です。

<form action="FilesUploader.ashx" method="post" enctype="multipart/form-data">

nameサーバーのドロップダウンから値を取得するには、それらに属性を指定する必要があります。

<select id="ddlApproval1" name="ddlApproval1">
    <option>Yes</option>
    <option>No</option>
</select>
于 2012-04-05T14:30:01.280 に答える