我正在使用multer npm模块将文件上传到我的应用程序。
我定义的multer功能是允许将单个文件上载到文件系统。一切都在运行时工作;问题是在我上传文件后,我在下面遇到了一个错误。任何关于去哪里看的建议都很感激。
Unexpected field
Error: Unexpected field
at makeError (c:\Users\Dev\WebstormProjects\Crunch\node_modules\multer\lib\make-error.js:12:13)
at wrappedFileFilter (c:\Users\Dev\WebstormProjects\Crunch\node_modules\multer\index.js:39:19)
at Busboy.<anonymous> (c:\Users\Dev\WebstormProjects\Crunch\node_modules\multer\lib\make-middleware.js:97:7)
at Busboy.emit (events.js:118:17)
at Busboy.emit (c:\Users\Dev\WebstormProjects\Crunch\node_modules\multer\node_modules\busboy\lib\main.js:31:35)
at PartStream.<anonymous> (c:\Users\Dev\WebstormProjects\Crunch\node_modules\multer\node_modules\busboy\lib\types\multipart.js:205:13)
at PartStream.emit (events.js:107:17)
at HeaderParser.<anonymous> (c:\Users\Dev\WebstormProjects\Crunch\node_modules\multer\node_modules\busboy\node_modules\dicer\lib\Dicer.js:51:16)
at HeaderParser.emit (events.js:107:17)
at HeaderParser._finish (c:\Users\Dev\WebstormProjects\Crunch\node_modules\multer\node_modules\busboy\node_modules\dicer\lib\HeaderParser.js:70:8)
var multer = require('multer');
var app = express();
var fs = require('fs');
//. . .
var upload = multer({ dest: 'upload/'});
var type = upload.single('file');
app.post('/upload', type, function (req,res) {
var tmp_path = req.files.recfile.path;
var target_path = 'uploads/' + req.files.recfile.name;
fs.readFile(tmp_path, function(err, data)
{
fs.writeFile(target_path, data, function (err)
{
res.render('complete');
})
});
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name='recfile' placeholder="Select file"/>
<br/>
<button>Upload</button>
</form>
#Package.json
"dependencies": {
"body-parser": "~1.13.2",
"cookie-parser": "~1.3.5",
"debug": "~2.2.0",
"easy-zip": "0.0.4",
"express": "~4.13.1",
"hbs": "~3.1.0",
"less-middleware": "1.0.x",
"morgan": "~1.6.1",
"multer": "~1.0.0",
"serve-favicon": "~2.3.0"
}
}
文森特回答的后续行动。
不是对问题的直接回答,因为问题使用的是表格。
对我来说,使用的不是输入标签的名称,而是将文件附加到formData时的名称。
前端文件
var formData = new FormData();
formData.append('<NAME>',this.new_attachments)
web服务文件:
app.post('/upload', upload.single('<NAME>'),...
我们必须确保type=file with name属性应该与上传中传递的参数名称相同。单个('attr')
var multer = require('multer');
var upload = multer({ dest: 'upload/'});
var fs = require('fs');
/** Permissible loading a single file,
the value of the attribute "name" in the form of "recfile". **/
var type = upload.single('recfile');
app.post('/upload', type, function (req,res) {
/** When using the "single"
data come in "req.file" regardless of the attribute "name". **/
var tmp_path = req.file.path;
/** The original name of the uploaded file
stored in the variable "originalname". **/
var target_path = 'uploads/' + req.file.originalname;
/** A better way to copy the uploaded file. **/
var src = fs.createReadStream(tmp_path);
var dest = fs.createWriteStream(target_path);
src.pipe(dest);
src.on('end', function() { res.render('complete'); });
src.on('error', function(err) { res.render('error'); });
});
问题内容: 我正在使用multer npm模块将文件上传到我的应用程序。 我定义的multer功能是允许将一个文件上传到文件系统。运行期间一切正常;问题是我上传文件后出现以下错误。任何建议赞赏在哪里看。 app.js 索引库 问题答案: 我们必须确保具有name属性的type =文件应与传入的参数名称相同
我知道我们可以直接从左连接实现它,但由于一些限制,我们使用交叉连接,所以我需要走这条路... 请分享您的想法,欢迎提出建议 更新1我们没有使用关联,这就是为什么我们严格交叉连接。
问题内容: 我已经开始研究 Node JS了 。 这是我的文件。 index.html app.js webpack.config.js 更新 bundle.js 因此,当我点击一个 app.js 并访问地址(localhost:3000)时,我在控制台中得到了错误。 bundle.js:1未捕获的SyntaxError:意外的令牌< 另外我的JS文件没有运行。有人可以建议一些解决办法吗? 提前致
问题内容: 我有以下循环: 当我执行程序时,它会无限循环打印从-128到127的所有数字。为什么会这样? 问题答案: byte是1字节类型,因此可以在-128 … 127之间变化,因此条件i <128始终为true。当您将1加到127时,它会溢出并变为-128,依此类推(无限循环)…
我在库伯内特斯集群中运行3个节点。每个节点都有相同的Pod myApp。我使用NodePort类型创建一个服务,以便所有3个节点都可以从外部访问。服务yaml如下所示 假设3个节点的节点IP端口为: 1.192.168.18.1:30010 2.192.68.18.2:30010 3.192.18.18.3:30010 我的问题是:<br>1.如果所有请求都来自IP为(192.168.18.1:3