2010-11-30 47 views
1

我有一个应用程序允许用户将视频上传到服务器,部分过程是在客户端上创建一个缩略图图像,用于加载到服务器上时的视频。我有一个writeablebitmap,我想要转换为jpeg并上传到服务器。上传从WriteableBitmap创建的JPEG而不将其保存到用户计算机

是否有可能在不将jpeg保存到用户计算机的情况下执行此操作 - 我不想要求可信的应用程序。是否有可能先将它存储在独立存储中,然后从那里上传它,就好像它只是用户计算机上的另一个文件一样?

感谢 迈克尔

回答

1

我实现了一个解决方案,允许我使用一个WriteableBitmap,使用FJCore将其转换为JPEG并将其写入MemoryStream并将其发送到服务器。

FluxJpeg.Core.Encoder.JpegEncoder encoder = new FluxJpeg.Core.Encoder.JpegEncoder(img, quality, stream); 

见:Using FJCore to encode Silverlight WriteableBitmap

然后我发现我修改上传一个MemoryStream避免了必须先创建一个本地文件很大FileUploader类。

ORIG:

public void StartUpload(FileInfo file) 

MODIFIED:

public void StartUpload(Stream fileStream) 

见:http://www.codeproject.com/KB/silverlight/SL4FileUploadAnd_SL4_MVVM.aspx

在我用FileUpload.ashx在上面的链接描述接受流的块服务器并将它们写入服务器上的文件。

使用HttpWebRequest调用FileUpload.ashx,MemoryStream以块的形式发送,直到到达流的末尾。

由于它们在服务器上接收到字节,所以它们被写出到指定位置的文件中。

  • 迈克尔
2

您必须将文件保存上传之前,但可以肯定的是能够将其保存到独立存储,而不是一般的文件系统。

有一个Microsoft Quickstart on Isolated Storage写入图像。

图像的名称和实际图像文件本身保存在独立存储中。图像名称使用userImage的一个键保存在名为userSettings的设置中。保存图像名称不是必需的,但它被保存为方便。图像文件保存在一个名为Images的目录中,名为UserImageFile.jpg。

The OpenFile method;

使用指定的共享和访问选项在指定路径处打开文件。此方法返回一个包含文件流的IsolatedStorageFileStream对象。

有一些代码你可以下载哪些应该让你开始。

相关问题