gpt4 book ai didi

node.js - fs writeFile 在应用程序根目录中创建临时文件

转载 作者:太空宇宙 更新时间:2023-11-04 01:02:09 25 4
gpt4 key购买 nike

我有以下代码片段来上传[将文件加载到服务器。它在本地环境中按预期工作,但在 Web 服务器中却不然。

使用connect-multiparty

path = req.files.FIELDNAME.path;
ogname = req.files.video.originalFilename;

function(path , ogname, callback) {
var fs = require('fs');
var uploadDir = process.cwd() + "/public/uploads/";
fs.readFile(path, function (err, data) {
var originalFilename = new Date().getTime() + '-' + ogname.replace(/[\s,:-]+/g, "-");
var newPath = uploadDir + originalFilename;
var relatPath = "/uploads/" + originalFilename;
fs.writeFile(newPath, data, function (err,result) {
callback(relatPath);
});
});
}

它按预期在 /public/uploads 中创建文件,但也会在应用程序根目录中留下一些内容。像这样

enter image description here

最佳答案

https://github.com/andrewrk/connect-multiparty

This middleware will create temp files on your server and never clean them up.

您必须手动删除它们:

//....
fs.writeFile(newPath, data, function (err,result) {
callback(relatPath);
fs.unlink(path, function (err) {
if (err) throw err;
});
});

请注意,process.cwd() 不会返回应用程序根路径,而是返回工作目录。使用__dirname相反。

并使用 rename速度更快,并且您无需手动删除文件。

关于node.js - fs writeFile 在应用程序根目录中创建临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26135364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com