知道为什么我的 FileUpload 没有显示文件吗?
Any ideas why my FileUpload is showing no file?
我有一个简单的 FileUpload 框,它可以接受文件并将它们保存到一个网页上的服务器上的某个位置,但是我正在处理的页面现在在 radPageView 中有一个表单视图,在里面一个 RadMultiPageView。当我试图查看 FileUpload 控件中是否有文件时,每次都会遇到空值,尽管我正在加载文件。这是我的一些代码片段,经过了一些删减。部分问题在于,在我在网上找到的所有教程中,用户在按钮单击事件的 vb 中输入了一些此类信息,而我在 xyz Handles .Updating
中输入了这些信息部分。
我 运行 遇到的问题是,当我到达 FileUpload1.HasFile
时,它显示没有文件,即使我已经上传了一个文件。事实上,它显示为 Null,就好像我没有正确连接到 FileUpload 控件一样。我弄乱了连接到 FileUpload 控件的不同方法,但其中 none 确实有效。
<telerik:RadMultiPage ID="RadMultiPage1" runat="server" SelectedIndex="0" CssClass="multiPage"
BorderColor="Black" BorderStyle="Solid">
<telerik:RadPageView ID="pvMemoDoc" runat="server">
<asp:FormView ID="fvMemoDoc" runat="server" DefaultMode="Edit" DataSourceID="dsMemos"
DataKeyNames="coreDocID">
<EditItemTemplate>
<table class="tblNoSpace">
[...Other Code...]
<%--Begin file upload section--%>
<tr>
<td class="fieldLabel">File to upload:<br />
</td>
<td>
<asp:FileUpload ID="FileUpload1" runat="server" Width="600" ToolTip="Browse for file" />
</td>
</tr>
<tr>
<td colspan="2" style="text-align: right">
<asp:Label ID="lblFU1" runat="server" Enabled="false" Visible="false"
Text="(only select new file if you wish to replace existing file)"></asp:Label>
</td>
</tr>
<tr>
<td>
<br />
<br />
<asp:Button ID="btnUpdateMemo" CommandName="Update" runat="server" Text="Update Memo"
CausesValidation="true" ValidationGroup="MemoInformation"
ToolTip="Save updates" />
</td>
</tr>
</table>
</EditItemTemplate>
</asp:FormView>
</telerik:RadPageView>
[...Other Code...]
</telerik:RadMultiPage>
VB代码:
Private Sub DsMemo_Updating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceCommandEventArgs) Handles dsMemos.Updating
Dim FileUpload1 As FileUpload = CType(fvMemoDoc.FindControl("FileUpload1"), FileUpload)
'Dim FileUpload1 As FileUpload = CType(fvMemoDoc.Controls(0).Controls(0).FindControl("FileUpload1"), FileUpload)
'Dim FileUpload1 As FileUpload = CType(fvMemoDoc.Controls(0).FindControl("FileUpload1"), FileUpload)
'Dim FileUpload1 As FileUpload = TryCast(updateButton.Parent.Parent.FindControl("FileUpload1"), FileUpload)
If FileUpload1.HasFile Then
[...Other Code Here..]
[...Never gets past FileUpload1.HasFile...]
End If
End Sub
经过一些修改后发现修改权限与 read/write 权限存在问题。
该控件的工作方式是它会存储一个临时文件,然后将其从服务器上删除,所以这就是没有文件显示的原因。
为网络应用程序授予对存储临时文件的文件夹的修改权限解决了我的问题。
我有一个简单的 FileUpload 框,它可以接受文件并将它们保存到一个网页上的服务器上的某个位置,但是我正在处理的页面现在在 radPageView 中有一个表单视图,在里面一个 RadMultiPageView。当我试图查看 FileUpload 控件中是否有文件时,每次都会遇到空值,尽管我正在加载文件。这是我的一些代码片段,经过了一些删减。部分问题在于,在我在网上找到的所有教程中,用户在按钮单击事件的 vb 中输入了一些此类信息,而我在 xyz Handles .Updating
中输入了这些信息部分。
我 运行 遇到的问题是,当我到达 FileUpload1.HasFile
时,它显示没有文件,即使我已经上传了一个文件。事实上,它显示为 Null,就好像我没有正确连接到 FileUpload 控件一样。我弄乱了连接到 FileUpload 控件的不同方法,但其中 none 确实有效。
<telerik:RadMultiPage ID="RadMultiPage1" runat="server" SelectedIndex="0" CssClass="multiPage"
BorderColor="Black" BorderStyle="Solid">
<telerik:RadPageView ID="pvMemoDoc" runat="server">
<asp:FormView ID="fvMemoDoc" runat="server" DefaultMode="Edit" DataSourceID="dsMemos"
DataKeyNames="coreDocID">
<EditItemTemplate>
<table class="tblNoSpace">
[...Other Code...]
<%--Begin file upload section--%>
<tr>
<td class="fieldLabel">File to upload:<br />
</td>
<td>
<asp:FileUpload ID="FileUpload1" runat="server" Width="600" ToolTip="Browse for file" />
</td>
</tr>
<tr>
<td colspan="2" style="text-align: right">
<asp:Label ID="lblFU1" runat="server" Enabled="false" Visible="false"
Text="(only select new file if you wish to replace existing file)"></asp:Label>
</td>
</tr>
<tr>
<td>
<br />
<br />
<asp:Button ID="btnUpdateMemo" CommandName="Update" runat="server" Text="Update Memo"
CausesValidation="true" ValidationGroup="MemoInformation"
ToolTip="Save updates" />
</td>
</tr>
</table>
</EditItemTemplate>
</asp:FormView>
</telerik:RadPageView>
[...Other Code...]
</telerik:RadMultiPage>
VB代码:
Private Sub DsMemo_Updating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceCommandEventArgs) Handles dsMemos.Updating
Dim FileUpload1 As FileUpload = CType(fvMemoDoc.FindControl("FileUpload1"), FileUpload)
'Dim FileUpload1 As FileUpload = CType(fvMemoDoc.Controls(0).Controls(0).FindControl("FileUpload1"), FileUpload)
'Dim FileUpload1 As FileUpload = CType(fvMemoDoc.Controls(0).FindControl("FileUpload1"), FileUpload)
'Dim FileUpload1 As FileUpload = TryCast(updateButton.Parent.Parent.FindControl("FileUpload1"), FileUpload)
If FileUpload1.HasFile Then
[...Other Code Here..]
[...Never gets past FileUpload1.HasFile...]
End If
End Sub
经过一些修改后发现修改权限与 read/write 权限存在问题。 该控件的工作方式是它会存储一个临时文件,然后将其从服务器上删除,所以这就是没有文件显示的原因。
为网络应用程序授予对存储临时文件的文件夹的修改权限解决了我的问题。