我遇到了关于从HttpInputStream到FileStream的转换类型的问题.
我怎么做的?
我有一个HttpPostedFileBase对象,我想拥有FileStream.
我写:
public void Test(HttpPostedFileBase postedFile) {
FileStream fileStream = (FileStream)(postedFile.InputStream); // throw exception
FileStream anotherFileStream = postedFile.InputStream as FileStream; // null
}
Run Code Online (Sandbox Code Playgroud)
我也试过了
public void Test(HttpPostedFileBase postedFile) {
Stream stream = postedFile.InputStream as Stream;
FileStream myFile = (FileStream)stream;
}
Run Code Online (Sandbox Code Playgroud)
但没有成功.
为什么要postedFile.InputStream来HttpInputStream型?
我怎么能解决这个问题呢?
谢谢
yar*_*arg 15
public byte[] LoadUploadedFile(HttpPostedFileBase uploadedFile)
{
var buf = new byte[uploadedFile.InputStream.Length];
uploadedFile.InputStream.Read(buf, 0, (int)uploadedFile.InputStream.Length);
return buf;
}
Run Code Online (Sandbox Code Playgroud)
小智 8
从HTTP调用获得的流是只读顺序(不可搜索),FileStream是可读/可搜索的.首先需要将HTTP调用中的整个流读入字节数组,然后从该数组中创建FileStream.
小智 8
我使用了以下内容,它在同样的情况下工作得很好
MemoryStream streamIWant = new MemoryStream();
using (Stream mystream = (Stream)AmazonS3Service.GetObjectStream(AWSAlbumBucketName, ObjectId))
{
mystream.CopyTo(streamIWant);
}
return streamIWant;
Run Code Online (Sandbox Code Playgroud)
GetObjectStream返回问题中提到的相同类型的字符串.
| 归档时间: |
|
| 查看次数: |
16802 次 |
| 最近记录: |