問題タブ [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.

0 投票する
2 に答える
855 参照

node.js - Gridfs-stream、Multiparty ミドルウェアのエンコーディングの問題

GridFS でファイルを適切に保存および取得する際に問題が発生しています。現在、.txt ファイルを送信すると、ファイルの内容が返されますが、.doc ファイルを送信すると、たくさんの意味不明なメッセージが表示されます (黒いひし形にクエスチョン マークが入っているなど)。

私の最終目標は、ファイルを送信して、後で別の要求で誰かがファイルをダウンロードできるようにすることです。

コードの記述:

読み取りコード:

助言がありますか?あなたが提供できる助けを本当に感謝します。ありがとう。

編集:角度でのアップロードの問題に問題がありました。

0 投票する
2 に答える
7347 参照

javascript - Node.js ファイルのアップロード (Express 4、MongoDB、GridFS、GridFS-Stream)

node.js アプリケーションでファイル API をセットアップしようとしています。私の目標は、最初にファイルをディスクに保存する必要なく、ファイル ストリームを直接 gridfs に書き込めるようにすることです。私の作成コードが機能しているようです。アップロードしたファイルを gridfs に保存できます。問題はファイルの読み取りです。保存したファイルを Web ブラウザー ウィンドウからダウンロードしようとすると、ファイルの内容が次のような内容でラップされていることがわかります。

私の質問は、ファイル ストリームから境界情報を削除してから gridfs に保存するにはどうすればよいですか? ここに私が取り組んでいるコードがあります:

ところで、私は現在、これらのルートにミドルウェアを使用していませんが、そうすることにオープンです。gridfsに送信される前に、ファイルがディスクにヒットすることを望んでいませんでした。

編集:

@fardjad によると、multipart/form-data 解析用にnode-multipartyモジュールを追加したところ、うまくいきました。しかし、アップロードしたファイルをダウンロードして元のファイル (テキスト) と比較すると、エンコードに多くの違いがあり、ダウンロードしたファイルが開きません。これが私の最近の試みです。

最終編集:

これは、別の開発者からコピーして変更した単純な実装です。これは私のために働いています:(私はまだ元のエクスプレスアプリでなぜそれが機能しないのかを理解しようとしています.何かが干渉しているようです)

https://gist.github.com/pos1tron/094ac862c9d116096572

0 投票する
1 に答える
132 参照

node.js - nodejsを使ったGridFsのダウンロードが始まらない

GridFS を使用して mongoDB に保存されている +200M のバイナリ ファイルをダウンロードしようとしています。私の問題は、ダウンロードが開始されないことです。私はmongodbとgridfs-streamでnodejsを使用しています。

routes.js では:

私の見解のどこかに:

nodejs ログから応答を生成します。

しかし、ダウンロードは開始されません...そして、何が起こっているのかわかりません..

0 投票する
2 に答える
3364 参照

javascript - node.js pdf ファイルのアップロードとダウンロード

フレームワーク: node.js/express.js/busboy/gridfs-stream(mongodb)

busboy を使用してファイルをアップロードしてから、gridfs-stream を使用してファイルを mongodb gridfs に保存しています。

ダウンロードは簡単です。gridfs-stream の createReadStream を使用します。mongodb からコンテンツを読み取り、次のコードを使用してブラウザーに送信します。

問題: 90kb の pdf ファイルをアップロードすると、正常にアップロードされます。サイズはmongodbで正しいことがわかります。しかし、ダウンロードすると、ダウンロードしたファイルのファイルサイズは約165kbです。不一致があります。これは、テキスト ファイルでは発生しません。確かにデータ型と関係があります。

誰でも助けてもらえますか?

0 投票する
1 に答える
5093 参照

java - Spring Rest CallでGridFSを使用してMongoから取得した画像を送信するには?

Spring Data と GridFs Template を使用して Mongo DB から画像を取得しました

そのため、取得した入力ストリームをユーザーに返す方法がわかりません。

彼らが春休みの呼び出しhttp://host.com/appleとして 要求したとしましょう。これで、私のアプリケーションは、mongodb データベースからリンゴのイメージを取得する名前を使用してリクエストを処理します。どこにも保存せずに、ブラウザに画像を表示する画像として応答を表示したいと思います。これをどのくらい正確に実装する必要がありますか?applehttp://host.com/apple

Rest Call で画像リクエストを処理するためのコード リポジトリを教えてください。

Controller Code

この関数は、mongodb から画像を取得します

エラー

0 投票する
1 に答える
2627 参照

javascript - Upload file using ng-file-upload and mongo gridfs

I want to upload a file that is more than 16MB to my database Mongo. On the front end part, I use ng-file-upload module (https://github.com/danialfarid/ng-file-upload). On the back-end side, i use connect-busboy and gridfs-stream modules

I get the following error: POST /api/files/ 500 3.084 ms - 1992 Error: Unsupported content type: application/json;charset=utf-8 at Busboy.parseHeaders (C:...\node_modules\busboy\lib\main.js:68:9) at new Busboy...

When the file is selected, the function $scope.uploadFile($file) of my controller is called which is calling a backend server api with a post method. The issue seems to be on the api call part.

I have 2 questions: - what am I doing wrong? and is there a better way to do it?

Here how my code looks like:

front-end

html page

then I have my controller.js

then my service.js file where the post api call to api/files/ is made:

var appServices = angular.module('appServices',[]);

Back-end Now on the backend-side, I have my app.js file, the api.js file and the database configuration file as below:

the api.js file:

app.js

here is my database config file