我有一个 ASP 文件上传,PostedFile.InputStream
它给了我们System.IO.Stream
. 这个文件流是否类似于获取
System.IO.File.OpenRead("filename");
我有一个 Rackspace 文件内容保护程序,它以 Stream 的形式获取输入,使用时没有显示正确的图像PostedFile.InputStream
。
我有一个 ASP 文件上传,PostedFile.InputStream
它给了我们System.IO.Stream
. 这个文件流是否类似于获取
System.IO.File.OpenRead("filename");
我有一个 Rackspace 文件内容保护程序,它以 Stream 的形式获取输入,使用时没有显示正确的图像PostedFile.InputStream
。
通常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);
您也可以将此流用作创建对象的输入。
这个与 rackspace cloud 一起工作,它可以从客户端上传文件到 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();
}
}