0

次のコントローラー アクションに投稿します。

<EmployeeAuthorize()>
<HttpPost()>
Function SendNewMessage(ByVal files1 As HttpPostedFileBase, ByVal files2 As HttpPostedFileBase) As JsonResult

    Debug.Print("files1=" + files1.ToString)
    Debug.Print("files2=" + files2.ToString)



    Dim result = New Dictionary(Of String, String)




    Dim fileName = Path.GetFileName(files1.FileName)
    Dim filePath = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName)

    files1.SaveAs(filePath)


    Dim fileName2 = Path.GetFileName(files2.FileName)
    Dim filePath2 = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName)

    files2.SaveAs(filePath)




    Return Json(result)

End Function

" "Debug.Print("files2=" + files2.ToString)という行にエラーが表示されます。NullReferenceException Object reference not set to an instance of an object.

これは私が使用しているビューです:

        @Using Html.BeginForm("SendNewMessage", "Message", FormMethod.Post, New With {.id = "sendForm", .enctype="multipart/form-data"})

            @<div class="sendBox">


                <h2 style="margin: 10px 0 0 0;">Attachments:</h2>
                <label>Attachment 1: &nbsp;<input type="file" name="files1" id="file1" class="files"/></label>
                <label>Attachment 2: &nbsp;<input type="file" name="files2" id="file2" class="files"/></label>
                <label>Attachment 3: &nbsp;<input type="file" name="files3" id="file3" class="files"/></label>

                <input type="submit" value="Send" />

        </div>

        End Using

最初のファイルは問題ありません ( files1)。複数のファイルをアップロードできないのはなぜですか?

4

1 に答える 1

1

コードでは、同じfileName変数を2回使用しています。filePath2回使用している変数についても同じことが言えます。したがって、置き換えます:

Dim fileName2 = Path.GetFileName(files2.FileName)
Dim filePath2 = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName)
files2.SaveAs(filePath)

と:

Dim fileName2 = Path.GetFileName(files2.FileName)
Dim filePath2 = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName2)
files2.SaveAs(filePath2)
于 2012-10-18T17:52:04.193 に答える