我有N个文件正在上传到此应用程序。每个的名称都是唯一的,但我不知道如何根据某个名称获取字节数组。
<input type="file" name="file1" />
并且在服务器上会有类似
的内容byte[] data = Request.Files["file1"]; //doesnt work, as i believe it wont take a string, but only an int index
当我查找这些解决方案时,FileName并不是那么关心,因此Files [0] .FileName不会有帮助,也不会编制索引。我希望能够根据上面的名称引用内容。
我不知道在哪里可以找到它。正在寻找MSDN并在这里。
我有很多文件,每个文件都有一个唯一的名称....然后根据唯一的名称,它实际上包含一些额外的信息,将告诉我如何处理它。
它看起来并不像在PHP中那么容易。
答案 0 :(得分:1)
这样的事情:
byte[] buffer = new byte[Request.Files["file1"].ContentLength];
Request.Files["file1"].InputStream.Read(buffer,0,buffer.Length);
迭代所有这些:
foreach (var item in Request.Files.AllKeys)
{
byte[] buffer = new byte[Request.Files[item].ContentLength];
Request.Files[item].InputStream.Read(buffer, 0, buffer.Length);
//do something with the byte[] - buffer
}
的更新强>
有意思...我刚刚运行了一个测试,如果我将 runat="server"
设置为文件元素,它只会看到填充的Request.Files集合:<input type="file" runat="server" name="file1" />
更新2 :如果您希望能够使用常规html enctype="multipart/form-data"
元素浏览Request.Files
集合,请务必在表单上设置input:file