我有一个使用nodejs +express的表单
玉石档案:
form(method="post", action="/upload", enctype="multipart/form-data")
input(type="file" name="image")
button(type="submit") Upload
Index.js 并非所有代码都是必需的
var formidable = require('formidable'),
http = require('http'),
util = require('util');
var fs = require('fs');
MyProject.post('/upload',function(req, res){
var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files)
{
console.log(files);
});
当我使用 console.log(files) 时,结果是这样的
{ iProducto:
{ domain: null,
_events: {},
_maxListeners: 10,
size: 1262294,
path: 'C:\\DOCUME~1\\ADMINI~1\\CONFIG~1\\Temp\\556696bb1c0c6a54362b746c4445
45ca',
name: 'Dibujo.bmp',
type: 'image/bmp',
hash: null,
lastModifiedDate: Mon Jun 09 2014 21:25:42 GMT-0100 (Hora estándar de Cabo
Verde),
_writeStream:
{ _writableState: [Object],
writable: true,
domain: null,
_events: {},
_maxListeners: 10,
path: 'C:\\DOCUME~1\\ADMINI~1\\CONFIG~1\\Temp\\556696bb1c0c6a54362b746c4
44545ca',
fd: null,
flags: 'w',
mode: 438,
start: undefined,
pos: undefined,
bytesWritten: 1262294,
closed: true } } }
现在可以了,但我需要文件名,如果我使用console.log(files.name),结果是未定义的,我怎样才能获得名称值
您可以通过字段名称访问文件名:
files.iProducto.name
。
不确定上面的答案是否已经过时,但以下内容获取正在上传的文件的文件名。
files.file.name
下面可以用来获取文件被强大重命名后的文件名:
var path = require("path");
const name = path.basename(files.file.path)
在当前最新版本中,您可以通过
files.file[0].originalFilename
获取文件名,通过files.file[0].filepath
获取文件路径。
早些时候是
files.file.name
和files.file.path