私はModify image obtained from loopback-component-storageと同様の質問がありますが、その答えは私には満足できません。ループバックコンポーネントストレージからイメージファイルを検証して名前を変更
は同じ例を使用します。
- 検証ファイルのファイルタイプ
- 修正インクルード:ここでは、クライアント側では
Upload.upload( { url: '/api/containers/container_name/upload', file: file, fileName: "demoImage.jpg", //Additional data with file params:{ username : username } });
は必要条件でありますサーバーに保存された名前
0それは、ユーザーのメソッドである必要がありますので、ユーザ名が必要です
:無効なファイルまたはユーザ名ここで
は、私が使用して発生したいくつかの参照である場合
container.upload
機能にユーザー名を送るためにremoteMethodに追加されました。この段階でファイルの種類を有効にしてファイル名を変更して、ファイル名が無効な場合にエラーを返すことは可能でしょうか?私はhttps://stackoverflow.com/a/31059880/5241407のようにブートファイルにconfigure-storage.jsを使用しましたが、この解決策は不十分です。クライアントが無効なファイルタイプを送信した場合、サーバーはエラーをスローしますが、これは予期しないことです。システムエラーをスローするのではなく、エラー応答でクエリを拒否することをお勧めします。だからシステムレベルでエラーをスローせずにエラーを返す方法は?
一度pngファイルをアップロードし、configure-storage.jsのfile.typeをチェックすると、ファイルタイプがimage/pngではなくapplication/octet-streamであることがわかります。これはプローブに使用したコードです:curl -X POST --header "Content-Type: multipart/form-data" --header "Accept: application/json" "HOST/api/usermodel/userId/upload" -F "[email protected]"
この予期しない結果がファイルの種類の判断を妨げる可能性があります。リクエストのdatasources.local.js
で
ええ、リモートメソッドをカスタマイズすることができます。コンテンツの種類は、私が信じているはずです。 – anoop
ありがとうございます。しかし、allowedContentTypesは 'application/octet-stream'の問題を解決できません。ファイルを送信するときにMINIタイプを定義する必要がある理由がわかります。ところで、beforeRemoteのメソッドはcreateの代わりにアップロードする必要があります。 – Zealseeker