Как загрузить файл в буфер в ASP.NET - PullRequest
1 голос
/ 02 февраля 2011

Я пытаюсь загрузить файл. Тем не менее, большая часть материала, который я нахожу в Интернете, объясняет, как сохранить файл в папке на сервере, но для моего решения мне просто нужно было создать буфер. Является ли это возможным? Я загружаю файл в буфер сервера, затем читаю и очищаю.

Obs .: Я использую компоненты telerik, и мне нужно прочитать / импортировать файл Excel.

Спасибо

Ответы [ 2 ]

2 голосов
/ 02 февраля 2011

Таким образом, если вы используете двоичный поток, подход к его буферизации независимо от контекста выполнения (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

0 голосов
/ 02 февраля 2011

Компонент FileUpload по умолчанию представляет файл в виде Byte[] - вы можете просто обернуть его в MemoryStream:

var strm = new MemoryStream(fileUpload.PostedFile.Contents);
  // I think its PostedFile.Contents, something like that anyway
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...