フォームとボタンのクリックに関連付けられたメソッドの起動にもかかわらず、私のファイルアップロードは値を文字列に渡しません。
ファイルアップロードにハンドラーを添付する必要がありますか?
ここにいくつかのサンプル ソースがあります。注意してください。これはプロジェクト内の唯一のコードです。ボタンやファイルのアップロードを他の場所に定義していません。
Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Sub Button_Click()
Dim FileUpload1 As New FileUpload()
Dim X As String = FileUpload1.FileName
Response.Write(X)
End Sub
End Class
そしてフォーム:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="Test.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" OnClick="Button_Click" text="Submit"/>
<%-- <input type="file" />--%>
</form>
</body>
</html>
FileUpload.HasFile を試した後、ファイル名を取得できないだけでなく (以下の回答で説明されています)、ファイルが関連付けられている場合も FileUpload.HasFile は何もないように見えますが、何らかの理由がありますか?このため?
Protected Sub Button_Click()
Dim FileUpload1 As New FileUpload()
'Dim X As String = FileUpload1.FileName
'Response.Write(X)
If (FileUpload1.HasFile) Then
' Do Something
' SaveFile(FileUpload1.PostedFile)
Else
End If
End Sub