上传的文件位于(保存)在节点js的jquery file-upload-plugin中的哪个位置?您还可以使用jquery file-upload-plugin上传和保存视频文件吗?感谢
答案 0 :(得分:1)
访问上传的文件
如果您使用的是Node和Express的最新版本,文件上传就是小菜一碟。我会支持这个说法,但在我们进一步说明之前,请确保您熟悉Express中的路线,请求和回复。
好的,现在让我们证明“小蛋糕”的主张是正确的。在我们的文件上传路由中,req参数具有可用的req.files。以下是req.files将包含的示例:
{
displayImage: {
size: 11885,
path: '/tmp/1574bb60b4f7e0211fd9ab48f932f3ab',
name: 'avatar.png',
type: 'image/png',
lastModifiedDate: Sun, 05 Feb 2012 05:31:09 GMT,
_writeStream: {
path: '/tmp/1574bb60b4f7e0211fd9ab48f932f3ab',
fd: 14,
writable: false,
flags: 'w',
encoding: 'binary',
mode: 438,
bytesWritten: 11885,
busy: false,
_queue: [],
drainable: true
},
length: [Getter],
filename: [Getter],
mime: [Getter]
}
}
在上面的req.files对象中,属性displayImage是HTML表单中文件字段的名称,req.files将包含每个有效HTML文件表单字段的一个属性。
文件对象包含服务器端验证的类型,大小和名称属性。
保存上传的文件
假设文件有效,则使用path属性进行下一步。该路径通常包含tmp文件夹中的位置。您的应用程序逻辑可能要求您访问文件的内容,或者只是将上传的文件移动到另一个位置。
fs.readFile(req.files.displayImage.path, function (err, data) {
// ...
var newPath = __dirname + "/uploads/uploadedFileName";
fs.writeFile(newPath, data, function (err) {
res.redirect("back");
});
});
在fs.readFile回调中,我们有data参数,通过它我们可以访问文件的内容。上面的示例来自需要修改文件并将其保存在新位置的应用程序。因此fs.writeFile用于将数据写入newPath。
如果您的应用只需移动上传的文件而不修改内容,则可以使用fs.rename作为更简单的选项。