
41
レシピ 2.2 アップロードファイルを受信する
は
2MB
)。この制限値は、アップロードファイル以外のすべてのフィールドデータの合計値に対す
る制限です。アップロードファイルのサイズには適用されません。
ミニレシピ
2.2.2
formidable
でファイル名を保存する
formidable
が
uploads
ディレクトリにファイルを保存する際には、ファイル名はランダムな
16
進数の値となります。これは、ユニークなファイル名を生成することにより、同名のファイルを上
書きしないようにするための処置です。では、ユニークなファイル名で既存ファイルに上書きし
ないようにした上で、ファイル名で内容を判別できるようにするためにはどうすればよいでしょう
か。
formidable
から
fileBegin
イベント(
multipart
のファイルを受け取るたびに発生)を受け取り
ます。以下のようにイベントリスナを記述します。
server.js
incoming.on('fileBegin', function (field, file) {
if (file.name) {
file.path += '-' + file.name;
}
}).on('file', function (field, file) {
// ...
続く
formidable
が生成したランダムなファイル名にオリジナルのファイル名を追記しました。これ
でファイルの内容を判別することができます。しかしアプリケーションを開発する際は多くの場
合、アップロードファイルの内容はデータベースに送られて、ランダムに生成されたファイル名と ...