文件上传控制不起作用
Posted
技术标签:
【中文标题】文件上传控制不起作用【英文标题】:File Upload Control is not working 【发布时间】:2011-07-25 20:31:32 【问题描述】:文件名和扩展名是空的。请帮忙。
ASPX 文件代码:
<tr>
<td colspan="3" style="height:0px">
<div id="trFile" runat="server" class="inlineGridAddAddress">
<table cellpadding="0" cellspacing="0">
<tr>
<td>
<div class="formFieldName">
<asp:RequiredFieldValidator ID="reqFile" runat="server"
ControlToValidate="fileUpload" ErrorMessage="Please select File"
ValidationGroup="Save" CssClass="Validations" ></asp:RequiredFieldValidator>
</div>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblFile" runat="server">File:</asp:Label>
</td>
<td>
<div>
<asp:FileUpload ID="fileUpload" runat="server" />
</div>
</td>
<td class="tdformFieldValueLogin" style="width:350px;padding-left:50px">
<asp:ImageButton ID="btnFileUploadSave" runat="server" ValidationGroup="Save"
ImageUrl="~/App_Themes/Default/images/update.png" ToolTip="Save"
Height="18px" onclick="btnFileUploadSave_Click"/>
<asp:ImageButton ID="btnFileUploadCancel" ImageUrl="~/App_Themes/Default/images/cancel.png"
runat="server" ToolTip="Cancel" Height="18px" />
</td>
</tr>
<tr>
<td>
<div class="formSmallTextAreaName">
<asp:Label ID="lblDescription" runat="server">Description:</asp:Label>
</div>
</td>
<td>
<div class="formSmallTextAreaValue">
<asp:RegularExpressionValidator ID="revNote"
runat="server" ControlToValidate="txtDescription"
ValidationExpression="^[\s\S]0,4096$"
Text="Maximum 4096 characters are allowed."
CssClass="Validations" Display="Dynamic">
</asp:RegularExpressionValidator>
<asp:TextBox ID="txtDescription"
runat="server" CssClass="textEntry1"
TextMode="MultiLine" MaxLength="4096" Width="218px">
</asp:TextBox>
</div>
</td>
</tr>
</table>
</div>
</td>
</tr>
CS 文件代码:
protected void btnFileUploadSave_Click(object sender, ImageClickEventArgs e)
string path = Server.MapPath(".") + "\\Files\\" + this.fileUpload.FileName;
string fileExtension = System.IO.Path.GetExtension(this.fileUpload.FileName).ToLower();
if (fileExtension == ".txt" || fileExtension == ".doc" || fileExtension == ".docx" || fileExtension == ".zip" || fileExtension == ".rar" || fileExtension == ".cs" || fileExtension == ".ppt" || fileExtension == ".pdf" || fileExtension == ".html" || fileExtension == ".jpg" || fileExtension == ".gif" || fileExtension == ".bmp" || fileExtension == ".png" || fileExtension == ".tif" || fileExtension == ".rm" || fileExtension == ".mp3" || fileExtension == ".xls")
this.fileUpload.PostedFile.SaveAs(path);
【问题讨论】:
你在做一个完整的回发吗? FileUpload 控件在部分回发中不起作用(即在 UpdatePanel 中 - 您需要触发完整回发)。 【参考方案1】:如果您将 UploadControl 放在 UpdatePanel(Ajax 的东西)中,默认情况下它不会工作。使用更新面板、文件上传控件并使用PostBackTrigger
控件强制postback
仅用于文件上传控件
查看以下链接
File Upload in UpdatePanel, ASP.NET AJAX
【讨论】:
非常感谢您以上是关于文件上传控制不起作用的主要内容,如果未能解决你的问题,请参考以下文章
“上传路径似乎无效”。 Codeigniter文件上传不起作用[关闭]