我上传了一个ASP文件PostedFile.InputStream
,它正在向我们提供System.IO.Stream
。此文件流是否与获取
System.IO.File.OpenRead("filename");
我有一个Rackspace文件内容保护程序,可以将输入作为Stream获取,使用PostedFile.InputStream
时无法显示正确的图像。
答案 0 :(得分:2)
通常PostedFile.InputStream
和System.IO.Stream
相同。
所以Rackspace不需要任何额外的编码。
您可以使用file.InputStream作为Stream参数来创建Rackspace云文件的对象。
另一种不需要但可以测试的方法是
byte[] buffer = new byte[file.InputStream.Length];
file.InputStream.Seek(0, SeekOrigin.Begin);
file.InputStream.Read(buffer, 0, Convert.ToInt32(file.InputStream.Length));
Stream stream2 = new MemoryStream(buffer);
您也可以将此流用作创建对象的输入。
答案 1 :(得分:0)
这个与rackspace云一起工作,它可以将文件从客户端上传到rackspace云文件。我还使用了文件上传器。
protected void Button1_Click(object sender, EventArgs e)
{
var cloudIdentity = new CloudIdentity() { Username = "Rackspace_user_name", APIKey = "Rackspace_api" };
var cloudFilesProvider = new CloudFilesProvider(cloudIdentity);
byte[] buffer = new byte[FileUpload1.FileBytes.Length];
FileUpload1.FileContent.Seek(0, SeekOrigin.Begin);
FileUpload1.FileContent.Read(buffer, 0, Convert.ToInt32(FileUpload1.FileContent.Length));
Stream stream2 = new MemoryStream(buffer);
try
{
using (FileUpload1.PostedFile.InputStream)
{
cloudFilesProvider.CreateObject("Containers_name", stream2, FileUpload1.FileName); //blockBlob.UploadFromStream(fileASP.PostedFile.InputStream);
}
}
catch (Exception ex)
{
Label1.Text = ex.ToString();
}
}