C# 动态生成的文件上载可以';我不能给出选择
我正在我的C# 动态生成的文件上载可以';我不能给出选择,c#,asp.net,file-upload,controls,findcontrol,C#,Asp.net,File Upload,Controls,Findcontrol,我正在我的ASPX页面动态添加一些控件。我需要动态添加它们,因为控件的数量取决于数据库记录 我正在使用UpdatePanel动态添加控件,如下所示: void AddFileUploadFields() { for (int i = 0; i < Helper.uploadFieldsCount; i++) { FileUpload fileUpload = new FileUpload(); string controlId = DateT
ASPX
页面动态添加一些控件。我需要动态添加它们,因为控件的数量取决于数据库记录
我正在使用UpdatePanel
动态添加控件,如下所示:
void AddFileUploadFields()
{
for (int i = 0; i < Helper.uploadFieldsCount; i++)
{
FileUpload fileUpload = new FileUpload();
string controlId = DateTime.Now.Ticks.ToString();
Thread.Sleep(10); // for non-equal ID for each control
fileUpload.ID = controlId;
uploadFormsId.Add(controlId);
UpdatePanel1.ContentTemplateContainer.Controls.Add(fileUpload);
PlaceHolder1.Controls.Add(fileUpload);
}
}
void AddFileUploadFields()
{
对于(int i=0;i
然后,从asp标记中静态定义的按钮
中,我尝试处理要上载的文件信息:
void buttonUpload_Click(object sender, EventArgs e)
{
var iEnum = uploadFormsId.GetEnumerator();
List<UploadFormDetails> uploadsInfo = new List<UploadFormDetails>();
List<string> generatedFileNames = new List<string>();
bool wereErrors = false;
while (iEnum.MoveNext())
{
FileUpload uploadForm = (FileUpload)FindControl(iEnum.Current.ToString());
uploadsInfo.Add(new UploadFormDetails(uploadForm.ID, uploadForm.HasFile, uploadForm.FileName));
}
...
}
void按钮点击(对象发送者,事件参数e)
{
var iEnum=uploadFormsId.GetEnumerator();
List uploadsInfo=新列表();
List generatedFileNames=新列表();
bool-wereErrors=false;
while(iEnum.MoveNext())
{
FileUpload uploadForm=(FileUpload)FindControl(iEnum.Current.ToString());
uploadsInfo.Add(新的UploadFormDetails(uploadForm.ID,uploadForm.HasFile,uploadForm.FileName));
}
...
}
主要问题确实出现在这里:
FileUpload uploadForm=(FileUpload)FindControl(iEnum.Current.ToString())代码>
当我获得这样的控制时,它的所有选项,如.HasFile
或.FileName
都无法查看。它看起来就像一个没有保存选项的新控件。当然,我正在为测试选择一些文件,请不要认为我试图从空表单上传
我怎样才能修好它?我不能上传任何文件…我找到了一个解决方案,但我得到的结果是以另一种方式设计的,它不使用ASP.NET的服务器控件,我处理了简单的HTML
元素
在ASPX页面中,我定义了:
<%
for (int i = 0; i < Helper.uploadFieldsCount; i++)
{
Response.Write("<input type='file' id='uploadField" + i.ToString() + "' name='uploadField" + i.ToString() + "' class='file_1' /><br />");
}
%>
在codebeahind
中,我正在上载一个新文件,其中包含基于GUID
随机生成的名称:
void buttonUpload_Click(object sender, EventArgs e)
{
List<string> generatedFileNames = new List<string>();
bool wereErrors = false;
for (int i = 0; i < Helper.uploadFieldsCount; i++)
{
HttpPostedFile filePosted = Request.Files["uploadField" + i.ToString()];
if (filePosted != null && filePosted.ContentLength > 0)
{
string fileNameApplication = System.IO.Path.GetFileName(filePosted.FileName);
string fileExtensionApplication = System.IO.Path.GetExtension(fileNameApplication);
string newFile = Guid.NewGuid().ToString() + fileExtensionApplication;
string filePath = System.IO.Path.Combine(Server.MapPath("uploads"), newFile);
if (fileNameApplication != String.Empty)
{
generatedFileNames.Add(newFile);
filePosted.SaveAs(filePath);
}
}
...
void按钮点击(对象发送者,事件参数e)
{
List generatedFileNames=新列表();
bool-wereErrors=false;
对于(int i=0;i0)
{
字符串fileNameApplication=System.IO.Path.GetFileName(filePosted.FileName);
字符串fileExtensionApplication=System.IO.Path.GetExtension(fileNameApplication);
字符串newFile=Guid.NewGuid().ToString()+文件扩展应用程序;
字符串filePath=System.IO.Path.Combine(Server.MapPath(“上传”),newFile);
if(fileNameApplication!=String.Empty)
{
generatedFileNames.Add(newFile);
filePosted.SaveAs(文件路径);
}
}
...
void buttonUpload_Click(object sender, EventArgs e)
{
List<string> generatedFileNames = new List<string>();
bool wereErrors = false;
for (int i = 0; i < Helper.uploadFieldsCount; i++)
{
HttpPostedFile filePosted = Request.Files["uploadField" + i.ToString()];
if (filePosted != null && filePosted.ContentLength > 0)
{
string fileNameApplication = System.IO.Path.GetFileName(filePosted.FileName);
string fileExtensionApplication = System.IO.Path.GetExtension(fileNameApplication);
string newFile = Guid.NewGuid().ToString() + fileExtensionApplication;
string filePath = System.IO.Path.Combine(Server.MapPath("uploads"), newFile);
if (fileNameApplication != String.Empty)
{
generatedFileNames.Add(newFile);
filePosted.SaveAs(filePath);
}
}
...