如何解决如何在node.js中上传图像文件?
var title="this is title";
var content="this is content";
const config = { headers: {'Accept': 'application/json','Content-Type': 'multipart/form-data' } };
const form = new FormData()
let file =event.target.files[0]
form.append('file',file)
form.append('title',title)
form.append('content',content)`enter code here`
Axios.post("http://localhost:3001/article/get/123",form,config ).then((res)=>{
console.log(res.data)
})
解决方法
在节点中,我已使用multer上传图片或其他任何内容。
下面是我用作中间件的上传代码。
const util = require("util");
const path = require("path");
const multer = require("multer");
const storage = multer.diskStorage({
destination: function (req,file,cb) {
cb(null,"./Uploads") // folder path where to upload
},filename: function (req,cb) {
cb(null,file.originalname + "-" + Date.now() + path.extname(file.originalname))
}
});
const maxSize = 1 * 20000 * 20000; // file size validation
const uploadFiles = multer({ storage: storage,limits: { fileSize: maxSize } }).array("myfiles",10); // key name should be myfiles in postman while upload
const uploadFilesMiddleware = util.promisify(uploadFiles);
module.exports = uploadFilesMiddleware;
下面是我在控制器中创建的用于上传和文件检查的功能。
fileUpload = async (req,res) => {
try {
let userCode = req.headers.user_code;
await upload(req,res);
if (req.files.length <= 0) {
return res.status(httpStatusCode.OK).send(responseGenerators({},httpStatusCode.OK,'Kindly select a file to upload..!!',true));
}
let response = [];
for (const element of req.files) {
let data = await service.addFileData(element,userCode);
response.push(data); // for file path to be stored in database
}
if (response && response.length > 0) {
return res.status(httpStatusCode.OK).send(responseGenerators(response,'File uploaded sucessfully..!!',false));
} else {
return res.status(httpStatusCode.OK).send(responseGenerators({},'Failed to upload file kindly try later..!!',true));
}
} catch (error) {
logger.warn(`Error while fetch post data. Error: %j %s`,error,error)
return res.status(httpStatusCode.INTERNAL_SERVER_ERROR).send(responseGenerators({},httpStatusCode.INTERNAL_SERVER_ERROR,'Error while uploading file data',true))
}
}
这条路线会这样。
router.post('/upload/file',fileUploadController.fileUpload);
在上传文件时,请确保在邮递员中保持与中间件相同的名字。
,上面的代码在react.js中。我想在node.js中执行相同的工作,并且该文件将从公共文件夹中上传。主要问题是如何以前端event.target.files [0]
中的格式上传图像文件版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。