文件未使用节点 js multer 上传
File not uploaded using node js multer
我是 Rest 开发新手 API,我已经尝试使用以下方法上传文件 HTML 此代码有效。然后我在邮递员中尝试了这个我得到了积极的回应但文件没有上传,我可以知道我做错了什么吗?
var express = require("express");
var app = express();
var multer = require('multer')
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, './uploads');
},
filename: function (req, file, callback) {
callback(null, file.fieldname + '-' + Date.now()+".jpg");
}
});
var upload = multer({ storage : storage}).single('userPhoto');
我使用下面的方法上传文件。当我使用 HTML 上传文件时它起作用了。
但是,如果我使用邮递员尝试此操作,我会收到文件已上传的消息。但是在目标文件夹中没有文件。
app.post('/api/photo',function(req,res){
upload(req,res,function(err) {
if(err) {
// res.end({"error" : true,"message" : "Error uploading file."});
res.end("Error uploading file.");
}
res.end("File is uploaded");
// res.json({"error" : false,"message" : "File is uploaded"});
});
});
我在这里添加了我的 HTML 文件
<html>
<head>
<title>File upload Node.</title>
</head>
<body>
<form id="uploadForm"
enctype="multipart/form-data"
action="/api/photo"
method="post">
<input type="file" name="userPhoto" />
<input type="submit" value="Upload Image" name="submit">
<span id = "status"></span>
</form>
</body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery.form/3.51/jquery.form.min.js"></script>
<script>
$(document).ready(function() {
$('#uploadForm').submit(function() {
$("#status").empty().text("File is uploading...");
$(this).ajaxSubmit({
error: function(xhr) {
status('Error: ' + xhr.status);
},
success: function(response) {
console.log(response)
$("#status").empty().text(response);
}
});
return false;
});
});
</script>
</html>
我尝试了很多方法,但找不到任何解决方案,谁能帮我解决这个问题?
代码运行良好,由于请求 header 而发生问题。
{"Content-Type":"application/json"}
我刚刚删除了它。
这个 answer 帮助我解决了这个问题
我是 Rest 开发新手 API,我已经尝试使用以下方法上传文件 HTML 此代码有效。然后我在邮递员中尝试了这个我得到了积极的回应但文件没有上传,我可以知道我做错了什么吗?
var express = require("express");
var app = express();
var multer = require('multer')
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, './uploads');
},
filename: function (req, file, callback) {
callback(null, file.fieldname + '-' + Date.now()+".jpg");
}
});
var upload = multer({ storage : storage}).single('userPhoto');
我使用下面的方法上传文件。当我使用 HTML 上传文件时它起作用了。 但是,如果我使用邮递员尝试此操作,我会收到文件已上传的消息。但是在目标文件夹中没有文件。
app.post('/api/photo',function(req,res){
upload(req,res,function(err) {
if(err) {
// res.end({"error" : true,"message" : "Error uploading file."});
res.end("Error uploading file.");
}
res.end("File is uploaded");
// res.json({"error" : false,"message" : "File is uploaded"});
});
});
我在这里添加了我的 HTML 文件
<html>
<head>
<title>File upload Node.</title>
</head>
<body>
<form id="uploadForm"
enctype="multipart/form-data"
action="/api/photo"
method="post">
<input type="file" name="userPhoto" />
<input type="submit" value="Upload Image" name="submit">
<span id = "status"></span>
</form>
</body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery.form/3.51/jquery.form.min.js"></script>
<script>
$(document).ready(function() {
$('#uploadForm').submit(function() {
$("#status").empty().text("File is uploading...");
$(this).ajaxSubmit({
error: function(xhr) {
status('Error: ' + xhr.status);
},
success: function(response) {
console.log(response)
$("#status").empty().text(response);
}
});
return false;
});
});
</script>
</html>
我尝试了很多方法,但找不到任何解决方案,谁能帮我解决这个问题?
代码运行良好,由于请求 header 而发生问题。
{"Content-Type":"application/json"}
我刚刚删除了它。
这个 answer 帮助我解决了这个问题