我正在构建一个需要上传测试报告的网络应用。我在前端工作,其他人正在后端工作(使用nodejs和mongodb)。他的api服务器是单独运行的,我的webapp是单独运行的。现在我需要将上传的文件发送到他的api。我在做这件事时遇到了问题。我通过ajax发送数据。这是我的ajax代码
f = open("test.txt","r+")
for i in range(0,100):
f.seek(0)
f.truncate(0)
f.write("End of file")
f.close()
当我在我的路线中使用console.log(req.body)时,我将获取数据以及文件路径(不是文件)。如果我使用console.log(req.files)我会变空{}。
答案 0 :(得分:2)
您可以使用两种方法进行文件上传。
将文件的Base64发送到后端。后端开发人员将此文件存储在服务器中,商店位置的URL将存储在数据库中。
对于节点有multer和connect-multiparty npm。你可以选择其中一个。
对于后端代码是
var express = require('express'),
bodyParser = require('body-parser'),
host = '127.0.0.1',
port = '3002',
multer = require('multer'),
app = express();
var upload = multer()
app.use(bodyParser.urlencoded({
extended: false
}))
app.post('/file-upload', upload, function(req, res) {
console.log('file upload');
})
app.listen(port, function() {
console.log('hi server run' + " " + port);
})
和froent-end代码是
<body>
<form method="post" enctype="multipart/form-data" action="http://localhost:3002/file-upload">
<input type="file" name="thumbnail">
<input type="submit">
</form>
我认为第二个选项是文件上传的好选项。您可以查看multer
用于在
上传多个文件