3

私はmulterを使用してフォームからエクスプレスとノードで画像をアップロードしていますが、すべてのファイル名は「8f92a1388f70c6c88eb32489f6bcfcc9」のようになります。拡張子すら付いていません。これをクライアント側で表示するにはどうすればよいですか?

4

1 に答える 1

4

試す:

var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, '/where/ever/the/upload/dir/is')
  },
  filename: function (req, file, cb) {
    cb(null, file.orignalname)
  }
})

var upload = multer({ storage: storage })

それ以外の:

var upload = multer({ dest: 'uploads/' })

ファイルのリクエスト:
ファイル/ディレクトリに適切なパーミッションが設定されていれば、サーバーはファイルを正常にリクエストできるはずです。ファイルが書き込まれた後に特別なことをしていない場合は、拡張子を付けてファイル名を明示的に書くことを忘れないでください;)

アップロードをより細かく制御したい場合は、dest の代わりに storage オプションを使用することをお勧めします。Multer にはストレージ エンジンの DiskStorage と MemoryStorage が同梱されています。その他のエンジンは、サード パーティから入手できます。 -- 馬
( ref: github: expressjs/multer )

注: Multer はファイル拡張子を追加しません。関数はファイル拡張子を含むファイル名を返す必要があります。

于 2015-07-23T01:11:30.967 に答える