0

我有 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 中那么容易。

4

1 回答 1

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" />

更新 2enctype="multipart/form-data" :如果您希望能够Request.Files使用常规 htmlinput:file元素浏览集合,请确保在表单上进行设置。

于 2012-09-06T20:14:17.973 回答