上传的文件位于(保存)在 node js 中的 jquery file-upload-plugin 中的什么位置?您还可以使用 jquery file-upload-plugin 上传和保存视频文件吗?谢谢
问问题
124 次
1 回答
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 可以用作更简单的选项。
于 2012-11-21T01:09:11.233 回答