問題タブ [gridfs-stream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
express - multer と gridfs を使用した高速ファイル アップロード (破損したファイル ?)
ファイル (画像) をアップロードしようとしています。アップロードは問題なく、ファイルは Mongo に保存され、元のファイルと同じコンテンツ タイプと同じサイズですが、ダウンロードしようとするとファイルが破損します。同じコンテンツタイプを保持します(pdfをアップロードするとpdfとして認識され、pngの場合も認識されますが、開くことができません)。これの何が問題なのかわかりません。かなりシンプルで標準的なものです。
クライアントからのアップロードには angular ng-upload を使用します。ダウンロードには、コードで定義されたルートへの単純な GET リクエストです。
編集:ファイルはサーバーに適切にアップロードされているため、GridFS から読み込もうとすると問題が発生します。ダウンロードされたファイルは、アップロードされたファイルよりも大きいです! ファイルは元のファイルではなく、破損しています。なぜですか?
これが私のコードです。
safari - mp4 ビデオを Safari にストリーミングする
Sails.js を使用して、GridFS コレクションの mp4 ファイルを訪問者にストリーミングしています。Chrome と Firefox は問題なく動作していますが、Safari は Apple のやり方で動作します。つまり、Safari では動作しません。「リソースの読み込みに失敗しました」というメッセージしか表示されません。
いくつかの調査のために、GridFS ストリームをファイルに書き込み、これを Sails.js アセット フォルダーに移動して、すべてのブラウザーで直接呼び出すようにしました。これはSafariでも問題なく動作します。Sails.js は "Transfer-Encoding:chunked" を使用しているため、ファイルをストリーミングするときに問題が発生するはずです。
これは、さまざまなヘッダー応答です。
mp4 ファイル (/test/myvideo.mp4) への直接リクエスト - すべてのブラウザーで動作します。
GridFS ストリーム (/videos/files/sdrrer545547568fdsdf3.mp4) へのリクエスト - Safari では機能しません
Safari を機能させるために必要な情報を知っている人はいますか?
// 編集: Byte-Range ヘッダーで応答した後、ビデオを表示できるようになりましたが、ビデオを開くと、Safari が非常に奇妙な要求を行うようになりました。以下は、1 つのビデオ ファイルに対してログに記録された Byte-Range リクエストです。
javascript - GridFs を使用した mongoDB からの画像の読み取りと表示
GridFs を使用して、画像を mongoDB に正常にアップロードできました。以下は私のデータベースからの画像です:
fs.files:
fs.チャンク:
以下は、画像をアップロードするために使用したコードです。
問題:
この画像をmongoDBから読み取り、フロントエンドのHTML<img>
タグで表示する方法がわかりません。
これまでにこれを試しましたが、ファイルの名前のみが表示されます。
上記のコードはhereから取得しました
誰でも助けてください。私はDAYSのためにこれに立ち往生しています!!!!