Multer Upload single 在 reactjs 中不起作用
Multer Upload single not working in reactjs
我尝试了多种在线资源将文件上传到本地计算机上的目标位置。此控制台显示文件已上传,但在目标文件夹中未看到该文件。这是我的 server.js 代码:
const app = express()
app.use(bodyParser())
app.set('view engine', 'hbs')
app.use(express.static(__dirname + '/public'))
app.set('views', __dirname + '/views')
app.use(logger('dev'))
app.use(express.json())
app.use(express.urlencoded({ extended: false }))
app.get('/', (req, res) => {
res.render('index.hbs')
})
app.listen(port, () => {
console.log(`App is live on port ${port}`)
})
app.post('/upload', upload.single('myFile'), (req, res, next) => {
console.log('called')
console.log(req.body.myFile)
if (req.body.myFile) {
console.log('Uploading file...')
var filename = req.body.myFile
var uploadStatus = 'File Uploaded Successfully'
} else {
console.log('No File Uploaded')
console.log('======================== SESSION END ========================')
var filename = 'FILE NOT UPLOADED'
var uploadStatus = 'File Upload Failed'
}
/* ===== Add the function to save filename to database ===== */
res.render('index.hbs', { status: uploadStatus, filename: `Name Of File: ${filename}` })
})
这是我的 index.hbs 文件:
<form action="/upload" method="POST">
<input type="file" name="myFile" required />
<input type="submit" value="Upload" />
</form>
有人可以帮我解决这个问题吗?
这里的问题出在你的hbs上。
表单缺少属性:enctype="multipart/form-data"
PS: req.body
应该包含额外的数据(例如文本字段),要输出你的文件你应该检查 req.file
。
我尝试了多种在线资源将文件上传到本地计算机上的目标位置。此控制台显示文件已上传,但在目标文件夹中未看到该文件。这是我的 server.js 代码:
const app = express()
app.use(bodyParser())
app.set('view engine', 'hbs')
app.use(express.static(__dirname + '/public'))
app.set('views', __dirname + '/views')
app.use(logger('dev'))
app.use(express.json())
app.use(express.urlencoded({ extended: false }))
app.get('/', (req, res) => {
res.render('index.hbs')
})
app.listen(port, () => {
console.log(`App is live on port ${port}`)
})
app.post('/upload', upload.single('myFile'), (req, res, next) => {
console.log('called')
console.log(req.body.myFile)
if (req.body.myFile) {
console.log('Uploading file...')
var filename = req.body.myFile
var uploadStatus = 'File Uploaded Successfully'
} else {
console.log('No File Uploaded')
console.log('======================== SESSION END ========================')
var filename = 'FILE NOT UPLOADED'
var uploadStatus = 'File Upload Failed'
}
/* ===== Add the function to save filename to database ===== */
res.render('index.hbs', { status: uploadStatus, filename: `Name Of File: ${filename}` })
})
这是我的 index.hbs 文件:
<form action="/upload" method="POST">
<input type="file" name="myFile" required />
<input type="submit" value="Upload" />
</form>
有人可以帮我解决这个问题吗?
这里的问题出在你的hbs上。
表单缺少属性:enctype="multipart/form-data"
PS: req.body
应该包含额外的数据(例如文本字段),要输出你的文件你应该检查 req.file
。