Может быть лучше передать входной поток непосредственно в выходной поток:
inputStream.CopyTo(outputStream);
Таким образом, вы не кэшируете весь файл в памяти перед повторной передачей.Например, вот как вы могли бы записать это в FileStream:
FileUpload fu; // Get the FileUpload object.
using (FileStream fs = File.OpenWrite("file.dat"))
{
fu.PostedFile.InputStream.CopyTo(fs);
fs.Flush();
}
Если вы хотите записать это непосредственно в другой веб-запрос, вы можете сделать следующее:
FileUpload fu; // Get the FileUpload object for the current connection here.
HttpWebRequest hr; // Set up your outgoing connection here.
using (Stream s = hr.GetRequestStream())
{
fu.PostedFile.InputStream.CopyTo(s);
s.Flush();
}
Это будет более эффективным, поскольку вы будете напрямую передавать входной файл на хост назначения, без предварительного кэширования в памяти или на диске.