2011-02-02 35 views
1

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

Obs .:我使用telerik组件,并需要读取/导入Excel文件。

感谢

+0

我不这么认为投入缓冲区是一个不错的选择 – anishMarokey 2011-02-02 16:36:15

回答

2

因此,如果您使用的是二进制流,该方法无论缓冲它执行的背景下(asp.net VS的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

默认FileUpload组件呈现您的文件作为Byte[] - 你可以只将它包装在一个MemoryStream

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