2010-11-30 9 views
1

ユーザーがビデオをサーバーにアップロードできるアプリケーションがあります。そのプロセスの一部は、クライアントに使用されるサムネイルイメージを作成することですビデオはサーバーにロードされます。私はjpegに変換してサーバーにアップロードしたいwriteablebitmapを持っています。WriteableBitmapから作成したJPEGをユーザーのコンピュータに保存せずにアップロードする

jpegをユーザーのコンピュータに保存せずにこれを行うことは可能ですか?私は信頼できるアプリケーションを必要としたくありません。最初にisolatedstorageに格納して、それがユーザーのコンピュータ上の別のファイルのようにそこからアップロードすることは可能ですか?

おかげ マイケル

答えて

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:MODIFIED

public void StartUpload(FileInfo file) 

public void StartUpload(Stream fileStream) 

参照:私はFileUpload.ashxは、ストリームのチャンクを受け入れるために上記のリンクで説明に使用されるサーバー上でhttp://www.codeproject.com/KB/silverlight/SL4FileUploadAnd_SL4_MVVM.aspx

それらをサーバー上のファイルに書き込むことができます。

HttpWebRequestを使用してFileUpload.ashxを呼び出すと、MemoryStreamはストリームの終わりに達するまでチャンクで送信されます。

これらのバイトはサーバー上で受信されるため、指定された場所にあるファイルに書き出されます。

  • マイケル
2

あなたは、アップロードする前にファイルを保存する必要がありますが、分離ストレージではなく、一般的なファイルシステムに保存することは確かに可能です。

イメージを書き込むMicrosoft Quickstart on Isolated Storageがあります。

イメージの名前と実際のイメージファイル自体は、独立したストレージに保存されます。イメージ名は、userImageというキーを持つuserSettingsという名前の設定に保存されます。イメージ名を保存する必要はありませんが、便利な形で保存されます。イメージファイルはImagesというディレクトリに保存され、UserImageFile.jpgという名前になります。

OpenFileの方法。

指定された共有およびアクセスオプションを使用して、指定されたパスでファイルを開きます。このメソッドは、ファイルのストリームを含むIsolatedStorageFileStreamオブジェクトを返します。

ダウンロードできるコードがいくつか用意されています。

関連する問題