【问题标题】:How Upload File To Buffer in ASP.NETASP.NET中如何上传文件到缓冲区
【发布时间】:2011-02-02 16:34:11
【问题描述】:

我正在尝试上传文件。但是,我在 Internet 上找到的大部分材料都解释了如何将文件保存到服务器上的文件夹中,但对于我的解决方案,我只需要缓冲即可。可能吗?我将文件上传到服务器缓冲区,然后读取并清理。

Obs.:我正在使用 Telerik 组件,需要读取/导入 Excel 文件。

谢谢

【问题讨论】:

  • 我不认为放入缓冲区是一个好的选择
  • 它们是小文件,并将它们扔到一个文件夹中,我认为这不是最好的解决方案。但是,你的意见是什么? @anishMarokey

标签: c# asp.net file-upload


【解决方案1】:

因此,如果您使用二进制流,则无论执行上下文如何(asp.net 与 winforms 或其他)都对其进行缓冲的方法很常见:

public static byte[] ReadFile(string filePath)
{
  byte[] buffer;
  FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
  try
  {
     int length = (int)fileStream.Length;  // get file length
     buffer = new byte[length];            // create buffer
     int count;                            // actual number of bytes read
     int sum = 0;                          // total number of bytes read

    // read until Read method returns 0 (end of the stream has been reached)
    while ((count = fileStream.Read(buffer, sum, length - sum)) > 0)
       sum += count;  // sum is a buffer offset for next reading
    }
  finally
  {
    fileStream.Close();
  }
   return buffer;
 }

另外,看看这个:

http://www.yoda.arachsys.com/csharp/readbinary.html

【讨论】:

    【解决方案2】:

    默认的 FileUpload 组件将文件显示为 Byte[] - 您可以将其包装在 MemoryStream 中:

    var strm = new MemoryStream(fileUpload.PostedFile.Contents);
      // I think its PostedFile.Contents, something like that anyway
    

    【讨论】:

      猜你喜欢
      • 2018-01-23
      • 1970-01-01
      • 2023-01-24
      • 2020-10-18
      • 2018-05-28
      • 2014-10-26
      • 2019-02-21
      • 2021-11-02
      • 1970-01-01
      相关资源
      最近更新 更多