ファイルがexpress.jsを使用してアップロードされると、新しい名前が付けられます(ハッシュか何かだと思います)。そのハッシュは一意ですか?データベースなどでファイル ID として使用できますか?
質問する
680 次
3 に答える
1
shortId.generate()
一意の ID を生成するために使用できます。
var shortId = require('shortid');
var uniqueFileName = shortId.generate();
fs.rename(file.path, cfg.data + '/uploads/' + uniqueFileName, function(err){
user.profileImage = uniqueFileName;
user.save(function(err) {
if ( err ) return res.json(400, err);
res.json(200, { profileImage: user.profileImage });
});
});
于 2014-07-13T18:06:19.203 に答える
1
では、どのようにファイルを受信していますか?
アップロードにフォームを使用していると思いますか?その場合、表示されているハッシュはおそらく単なる一時ファイル名であり、アップロードされたファイルをディスク (またはもちろんデータベース) に書き込む必要があります。
手順全体は、この記事で非常によく説明されています: http://howtonode.org/really-simple-file-uploads
したがって、内部的に表現する bodyparser は、次の式に基づいて一時フォルダーを選択する node-formidable を使用します。process.env.TMP || process.env.TMPDIR || process.env.TEMP || '/tmp' || process.cwd();
念のため、暗号ノード コア モジュールによって提供されるハッシュ アルゴリズムのいずれかを使用する必要があります。
この例のようにハッシュを生成します (fileData はファイルである必要があります)。
var crypto = require("crypto");
var uniqueID = (crypto.createHash('md5').update(fileData, 'utf8').digest("hex")).toString();
于 2013-09-15T19:07:40.003 に答える