我正在尝试使用ASP.NET中的FileUpload控件
这是我当前的命名空间设置:
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
在我的课堂上,我只是在使用:
FileUpload fileUpload = new FileUpload();
但是,通常不属于FileUpload的属性似乎都不可用......例如.HasFile。我正在尝试在后面的代码中使用Button click方法,我注意到.HasFile的大部分用法都在前面的代码中,但是我的理解是这不重要。
有谁知道为什么?
答案 0 :(得分:54)
应该将ASP.NET控件放在aspx标记文件中。这是与他们合作的首选方式。因此,请将FileUpload
控件添加到您的页面。确保其包含所有必需属性,包括ID
和runat
:
<asp:FileUpload ID="FileUpload1" runat="server" />
FileUpload1
的实例将自动在自动生成/更新的* .designer.cs文件中创建,该文件是页面的部分类。您通常不必关心其中的内容,只需假设对aspx页面的任何控件都会自动实例化。
添加一个可以回发的按钮:
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
然后转到您的* .aspx.cs文件,其中包含您的代码并添加按钮单击处理程序。在C#中它看起来像这样:
protected void Button1_Click(object sender, EventArgs e)
{
if (this.FileUpload1.HasFile)
{
this.FileUpload1.SaveAs("c:\\" + this.FileUpload1.FileName);
}
}
就是这样。一切都应该按预期工作。
答案 1 :(得分:1)
不是在代码隐藏文件中实例化FileUpload
,而是在标记文件(.aspx文件)中声明它:
<asp:FileUpload ID="fileUpload" runat="server" />
然后您将能够访问该控件的所有属性,例如HasFile
。
答案 2 :(得分:1)
从后面的代码添加FileUpload控件应该可以正常工作,其中HasFile属性应该可用(例如在Click事件中)。
如果属性似乎不可用(作为编译器错误或通过智能感知),您可能引用的变量与您认为的不同。
答案 3 :(得分:1)
我在代码背后的解决方案是:
mData=mData %>%
mutate(Budget=as.numeric(Budget),
Interaction.Rate=as.numeric(gsub("%","",Interaction.Rate)),
Cost=as.numeric(Cost),
CTR=as.numeric(gsub("%","",CTR)))
我不知道为什么,但是当你在没有 System.Web.UI.WebControls 的情况下使用FileUpload时,它正在引用 YourProject.FileUpload 而不是系统.Web.UI.WebControls.FileUpload
答案 4 :(得分:0)
我注意到当intellisence对某个对象不起作用时,你正在处理的上一行中的某个地方通常会出现错误。
另一个选项是您没有将FileUpload对象实例化为实例变量。确保代码:
FileUpload fileUpload = new FileUpload();
不在代码后面的函数中。
答案 5 :(得分:0)
旧问题,但仍然可以帮助您,这是完整示例
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" /><br/>
<asp:Button ID="Button1" runat="server" Text="Upload File" OnClick="UploadFile" /><br/>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</div>
</form>
在您的代码隐藏中,C#代码捕获文件并将其保存在目录中
protected void UploadFile(object sender, EventArgs e)
{
//folder path to save uploaded file
string folderPath = Server.MapPath("~/Upload/");
//Check whether Directory (Folder) exists, although we have created, if it si not created this code will check
if (!Directory.Exists(folderPath))
{
//If folder does not exists. Create it.
Directory.CreateDirectory(folderPath);
}
//save file in the specified folder and path
FileUpload1.SaveAs(folderPath + Path.GetFileName(FileUpload1.FileName));
//once file is uploaded show message to user in label control
Label1.Text = Path.GetFileName(FileUpload1.FileName) + " has been uploaded.";
}
来源:File Upload in ASP.NET (Web-Forms Upload control example)