2016-06-20 8 views
0

Wakandaが接続されている4Dv15データベースのテーブルのBLOBフィールドにPDFがあります。私は(Wakandaで)サーバーサイドスクリプトでフィールドからBLOBを引くと、それが対象です:Wakanda/4DMobile:BLOBの内容をクライアントに提示

{'size': 12915, 'type': 'application/octet-stream'}

PDFまたはバイナリデータが返されたオブジェクトにあるように表示されません。私は、BLOB内のPDFをクライアントに配信したいと思います。あなたはこれをどうやって行うのか理解してもらえますか?

はあなたに

編集ありがとう:

console.log(blob); var objectUrl = URL.createObjectURL(blob); window.open(objectUrl);

enter image description here

編集2:私は、コードを使用しようとすると、これは私が得るものですこれは私が使用していますサーバーサイドコードですブロブを取得します。私はここで働かそうとしています。テーブルにはレコードが1つしかなく、BLOBにPDFがあります。

var reportCollection = ds.ReportLog.all(); var blob = reportCollection[0].ReportBlob;

このコードの結果は、私は4DはBLOBのバイナリデータを返す代わりに、そのBLOBのプロパティのみされていることを証拠を見ないabove--見目的です。 Wakandaから

答えて

1

Request HandlerあなたがsendChunkedData()を使用することができます。

response.sendChunkedData(blob) 

またはBLOB APIから.copyTo()を使用して、サーバー上のファイルへのブロブを書いて、クライアントにファイルを提供:

var myFile = new File (outputFolder + filename) 
blob.copyTo(myFile) 

もう1つのオプションは、URL.createObjectURL静的メソッドで、次のように使用できます。

var objectUrl = window.URL.createObjectURL(blob) 
window.open(objectUrl) 

も参照してください:

+0

URL.revokeObjectURLはお返事ティムいただきありがとうございます。私はURL.createObjectURLを使ってみましたが、このエラー(元の投稿のエラーの画像)がありました。その上の行は、4Dから返されたBLOBのコンソールログです。 – NAMS

+0

@NAMSこれはあなたのエラーに関連している可能性があります:['URL'で 'createObjectURL'を実行できませんでした:](http://stackoverflow.com/a/33759534/5971390) - 私は少し答えを更新しました。 –

+0

私はそれを見ました、ありがとう - 私はそのポストのソリューションは 'createObjectURL()'関数の中で '新しいBlob()'コンストラクタを使うことでしたが、実際のバイナリデータです。私がサーバサイドのjavascriptを使ってBLOBフィールドのデータをプルすると、それはプロパティ 'size'と' type'を持つオブジェクトです - 実際には4Dからバイナリデータを取得することはできません。これが私の問題の原因かどうか疑問に思っています。 4Dから返されたデータに必要なバイナリデータが含まれていないと感じます。私はブロブを取得するためにSSコードで私のポストを編集しました。 – NAMS

関連する問題