c# - FileUpload.HasFile 总是假的,没有更新面板,一直工作到今天
问题描述
我在一些接近生产的代码上遇到了拉扯问题。我在表单上上传了一个文件,该表单允许用户将文档附加到他们在系统内的订单上发布的评论中。
此 FileUpload 控件不在更新面板中,而且从来没有。它一直工作到今天。我正在测试该项目并意识到文件没有上传,并发现.hasfile
刚刚开始为所有内容返回 false,似乎在一夜之间,因为我有数据库记录,并且上传了几天前的文件。
这是上传文件的表单按钮单击部分,如果在文件上传中
if (fileUp.HasFile)
{
String mime = MimeMapping.GetMimeMapping(fileUp.FileName);
String name = fileUp.FileName;
byte[] bytes = fileUp.FileBytes;
sql = "INSERT INTO orderAttachments (orderID, noteID, mimeType, theUpload, isDeleted, addedDateTime, addedIP, submittedBy, isBuyingOffice, commentID) VALUES (@id, @name, @mime, @doc, @del, GETDATE(), @ip, @assName, @buy, @commID)";
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("@id", id);
cmd.Parameters.AddWithValue("@name", name);
cmd.Parameters.AddWithValue("@mime", mime);
cmd.Parameters.AddWithValue("@doc", bytes);
cmd.Parameters.AddWithValue("@del", 0);
cmd.Parameters.AddWithValue("@ip", Request.ServerVariables["REMOTE_ADDR"]);
cmd.Parameters.AddWithValue("@assName", ad.FirstName() + " " + ad.LastName());
cmd.Parameters.AddWithValue("@buy", b);
cmd.Parameters.AddWithValue("@commID", commid);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
这是评论表格
<ul id="commentbox" class="flex-box" visible="true" runat="server">
<li>
<label>Add Comment To Order</label></li>
<li>
<asp:TextBox ID="commentTb" TextMode="MultiLine" runat="server"></asp:TextBox></li>
<li>
<label>Attach File: </label>
<asp:FileUpload ID="fileUp" runat="server" /></li>
<li>
<asp:CheckBox ID="boCb" runat="server" Text="Restrict To Buying Office" /></li>
<li>
<asp:Button ID="commentBtn" runat="server" Text="Submit" OnClick="commentBtn_Click" /></li>
<asp:RequiredFieldValidator ID="RcommentVl" runat="server" ControlToValidate="commentTb" ErrorMessage="Comment Required"></asp:RequiredFieldValidator>
</ul>
任何人都可以解释或帮助了解为什么在不使用更新面板的情况下会发生这种情况(我只能找到答案)。另外,我的文件不是空的,它们是我一直在使用的相同测试文件,并且已经确认它们有数据。
解决方案
好的,所以我发现了我的问题,但它提出的问题多于答案。
我在页面中添加了一个不可见的第二个表单,带有这样的占位符。
<form ID="form2" runat="server" visible="false">
<asp:PlaceHolder ID="PlaceHolder1" Visible="false" runat="server">
</asp:PlaceHolder>
</form>
它位于页面底部,仅在管理员使用的非常罕见的情况下可见(出现时主窗体的可见性将设置为 false)。当它可见时,根据某些标准将按钮添加到占位符中。
无论如何,我删除了它并将它移动到它自己的 aspx 页面,并在它应该FileUpload.HasFile
显示的时候再次开始显示。true
有谁知道为什么这可能导致FileUpload.HasFile
总是显示错误?
推荐阅读
- java - 2.0.1.RELEASE 中缺少 Aerospike 弹簧数据 @Bin 注释
- python - Geany IDE 代码编辑器将 GUI 中的值插入到实际代码中
- performance - React native flatlist only with video is not loading video after some items
- maple - 绘制之间包含的旋转实体
- c# - 可空类型的 IsNullOrEmpty 的替代方案?
- powershell - 获取有关组描述的 Active Directory 组及其成员的列表
- android - 如何获得对 ActionBarDrawerToggle 的引用?
- html - 使用自动分页符打印 html 时添加页码
- swift - 有没有办法每按下一个按钮 5 次调用一个函数(Swift)?
- latex - 如何在 tikz 中定义文本内的坐标点?