如何从每个输入文件中获取提交的文件数
How to get submitted files count from each input file
我在客户端有两个输入文件,我需要指定每个输入文件提交的文件数。我能够获得文件总数,但我需要获得每个输入文件提交的文件数量
HTML:
<input type="file" id="myFile" name="myFile" multiple="multiple" />
<input type="file" id="myFile2" name="myFile2" multiple="multiple" />
我通过 ASP.NET Web 表单按钮控件处理上传过程
如下:
protected void btnUploadClick(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Bytes", typeof(byte[]));
dt.Columns.Add("ImgNames", typeof(string));
dt.Columns.Add("ImgType", typeof(string));
dt.Columns.Add("Member", typeof(int));
// int firstFilesCount = Request.Files["myFile"].count; unable to do this
// int secondFilesCount = Request.Files["myFile2"].count; unable to do this so i need to
//get the count of files submitted by each input file
for (int i = 0; i < Request.Files.Count; i++)
{
if (Request.Files[i] != null && Request.Files[i].ContentLength > 0)
{
string fType = Request.Files[i].ContentType.Split('/')[1];
string fName = Path.GetFileName(Request.Files[i].FileName);
byte[] bytes = new BinaryReader(Request.Files[i].InputStream).ReadBytes(Request.Files[i].ContentLength);
dt.Rows.Add(Convert.ToInt32(hfAppID.Value), bytes, fName,
fType, Convert.ToInt32(ViewState["memberId"]));
}
}
string outputStr = UpdateAttach()
}
似乎 Request.Files
可能是所有文件的列表,无论它们来自什么输入。如果您使用 asp:FileUpload
控件而不是普通输入,则您可以访问服务器端的每个输入并且应该能够使用 myFile.PostedFiles.Count
和 myFile2.PostedFiles.Count
来获取文件的数量每一个。
最后,我可以使用以下代码确定哪个文件来自哪个输入
var v = Request.Files.Keys;
这将 return 我在提交页面中使用的输入文件的 ID。所以我可以通过使用 foreach
循环遍历每个输入文件,如下所示
foreach (string key in Request.Files)
{
//processing
}
我在客户端有两个输入文件,我需要指定每个输入文件提交的文件数。我能够获得文件总数,但我需要获得每个输入文件提交的文件数量
HTML:
<input type="file" id="myFile" name="myFile" multiple="multiple" />
<input type="file" id="myFile2" name="myFile2" multiple="multiple" />
我通过 ASP.NET Web 表单按钮控件处理上传过程 如下:
protected void btnUploadClick(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Bytes", typeof(byte[]));
dt.Columns.Add("ImgNames", typeof(string));
dt.Columns.Add("ImgType", typeof(string));
dt.Columns.Add("Member", typeof(int));
// int firstFilesCount = Request.Files["myFile"].count; unable to do this
// int secondFilesCount = Request.Files["myFile2"].count; unable to do this so i need to
//get the count of files submitted by each input file
for (int i = 0; i < Request.Files.Count; i++)
{
if (Request.Files[i] != null && Request.Files[i].ContentLength > 0)
{
string fType = Request.Files[i].ContentType.Split('/')[1];
string fName = Path.GetFileName(Request.Files[i].FileName);
byte[] bytes = new BinaryReader(Request.Files[i].InputStream).ReadBytes(Request.Files[i].ContentLength);
dt.Rows.Add(Convert.ToInt32(hfAppID.Value), bytes, fName,
fType, Convert.ToInt32(ViewState["memberId"]));
}
}
string outputStr = UpdateAttach()
}
似乎 Request.Files
可能是所有文件的列表,无论它们来自什么输入。如果您使用 asp:FileUpload
控件而不是普通输入,则您可以访问服务器端的每个输入并且应该能够使用 myFile.PostedFiles.Count
和 myFile2.PostedFiles.Count
来获取文件的数量每一个。
最后,我可以使用以下代码确定哪个文件来自哪个输入
var v = Request.Files.Keys;
这将 return 我在提交页面中使用的输入文件的 ID。所以我可以通过使用 foreach
循环遍历每个输入文件,如下所示
foreach (string key in Request.Files)
{
//processing
}