1

ユーザーがサーバーにビデオをアップロードできるようにするアプリケーションがあります。プロセスの一部は、サーバーにロードされたときにビデオに使用されるサムネイル画像をクライアントに作成することです。jpegに変換してサーバーにアップロードしたい書き込み可能なビットマップがあります。

最初にjpegをユーザーのコンピューターに保存せずにこれを行うことは可能ですか?信頼できるアプリは必要ありません。最初に分離ストレージに保存してから、ユーザーのコンピューター上の別のファイルであるかのようにそこからアップロードすることはできますか?

ありがとうマイケル

4

2 に答える 2

2

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

分離ストレージには、イメージを書き込むMicrosoftクイックスタートがあります。

画像の名前と実際の画像ファイル自体は、分離されたストレージに保存されます。画像名は、userImageというキーでuserSettingsという名前の設定に保存されます。画像名の保存は必須ではありませんが、便宜上保存されています。画像ファイルはImagesという名前のディレクトリに保存され、UserImageFile.jpgという名前が付けられます。

メソッドOpenFile;

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

ダウンロードできるコードがいくつかあり、それを開始する必要があります。

于 2010-11-30T20:47:44.327 に答える
1

WriteableBitmapを取得し、FJCoreを使用してJPEGに変換し、MemoryStreamに書き込んで、サーバーに送信できるソリューションを実装しました。

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

参照:FJCoreを使用したSilverlightWriteableBitmapのエンコード

次に、最初にローカルファイルを作成する必要がないように、MemoryStreamをアップロードするように変更した優れたFileUploaderクラスを見つけました。

ORIG:

public void StartUpload(FileInfo file)

変更:

public void StartUpload(Stream fileStream)

参照: http: //www.codeproject.com/KB/silverlight/SL4FileUploadAnd_SL4_MVVM.aspx

サーバーでは、上記のリンクで説明されているFileUpload.ashxを使用して、ストリームのチャンクを受け入れ、サーバー上のファイルに書き込みました。

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

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

  • マイケル
于 2011-01-15T19:22:28.497 に答える