我正在尝试使用 express-fileupload 上传文件,但没有运气让它正常工作。我可以让文件(在本例中为图像)“上传”,因为我可以让控制台显示使用正确文件夹上传的图像。
启动文件
router.get('/upload', function(req, res) {
res.render('upload');
});
router.post('/upload', function(req, res) {
// The name of the input field (i.e. "sampleFile") is used to retrieve the uploaded file
let startup_image = req.files.image;
// Use the mv() method to place the file somewhere on your server
startup_image.mv('/images' , function(err) {
if (err) {
console.log(err);
}
});
});
Run Code Online (Sandbox Code Playgroud)
然后我的 html 表单是
router.get('/upload', function(req, res) {
res.render('upload');
});
router.post('/upload', function(req, res) {
// The name of the input field (i.e. "sampleFile") is used to retrieve the uploaded file
let startup_image = req.files.image;
// Use the mv() method to place the file somewhere on your server
startup_image.mv('/images' , function(err) {
if (err) {
console.log(err);
}
});
});
Run Code Online (Sandbox Code Playgroud)
小智 7
您指向文件所在的目录,但没有为其指定文件名。我会说让用户决定客户端的文件名并将其添加到路径中。
<input name="userFileName" type="text">//userFilename Here</input>
Run Code Online (Sandbox Code Playgroud)
var myFILENAME = req.body.userFilename
startup_image.mv('/images/'+myFILENAME+'.jpg', ..) //myFILENAME needs to be added here
Run Code Online (Sandbox Code Playgroud)
另请参阅有关如何使用 express-fileupload 上传文件的完整示例
更新
我找到了您需要添加__dirname到这一行的问题的解决方案,这将使程序知道您的source代码的当前目录。
startup_image.mv(__dirname + '/images' , function(err) {..
Run Code Online (Sandbox Code Playgroud)
更新 2
这是我的源代码,如果你愿意,你可以试试这个。
我的 HTML
startup_image.mv(__dirname + '/images' , function(err) {..
Run Code Online (Sandbox Code Playgroud)
我的主要来源
var express = require("express);
var app = express();
const fileUpload = require('express-fileupload');
//npm install ejs, express, express-fileupload
//middleware
app.use(express.static(__dirname));
app.set('view engine', 'ejs');
app.use(fileUpload());
app.get('/inputFile', function(req, res){
res.render('inputt');
});
app.post('/upload', function(req, res) {
// The name of the input field (i.e. "sampleFile") is used to retrieve the uploaded file
var startup_image = req.files.foo;
var fileName = req.body.fileName;
// Use the mv() method to place the file somewhere on your server
startup_image.mv(__dirname + '/images/' + fileName + '.jpg' , function(err) {
if(err){
console.log(err);
}else{
console.log("uploaded");
}
});
});
app.listen(7777);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28446 次 |
| 最近记录: |