我正在使用node和express为我的网站做一点CMS。 我想使用一个表格定位多个文件,并将这些文件存储到public / image /:foldername。
所以我创建了一个表单,它有两个输入: 1.event - 这是事件名称 2.file - obvisuly输入的文件
现在当管理员登录并看到此表单时,他正在输入他的事件名称,例如“ “生日” 以及与之关联的图像文件。
最后我希望strcure是这样的: 上市/ /图片 /生日 此搜索 图像2 图像3 图像4
这是HTML:
<div class="panel panel-primary spacer3">
<div class="row">
{{#if error}}
<div data-alert class="alert-box">
{{error}}
<a href="#" class="close">×</a>
</div>
{{/if}}
<div class="small-4 medium-4 large-4 columns text-center">
<h1>פאנל ניהול</h1>
</div>
<form method="POST" action="/login">
<div class="row">
<div class="large-12 columns rtl">
<label>שם משתמש</label>
<input type="text" name="username" placeholder="שם משתמש" />
</div>
</div>
<div class="row">
<div class="large-12 columns rtl">
<label>סיסמא</label>
<input type="password" name="password" placeholder="סיסמא" />
</div>
</div>
<div class="row">
<div class="large-12 columns">
<input class="button [radius round]" type="submit" value="התחבר" />
</div>
</div>
</form>
</div>
</div>
这是路线:
app.post('/upload',routes.photos)
exports.photos = function(req, res){
console.log("body " + req.body);
console.log("event " + req.body.event);
console.log("files " + req.body.files);
if (req.body && req.body.files && req.body.event){
//event i th the name of the event
//files is the files that needs to be uploaded
var file = fs.createReadStream(req.body.files);
var newfile = fs.createWriteStream('./public/img/images');
file.pipe(newfile);
}
else{
console.log("none")
}
};
读取流和写入流不起作用,我不知道如何制作这个结构。
答案 0 :(得分:2)
应该是
<form method="POST" action="/login" enctype="multipart/form-data">
也
var file = fs.createReadStream(req.body.files);
应该是
var file = fs.createReadStream(req.files.formName.path);
formName是
<input type='file' name='formName' />
答案 1 :(得分:0)
这是iv做了什么: 从npm安装了mkdirp mkdirp = require('mkdirp'); 这将创建一个新文件夹。
和readFile将读取这些图像。
exports.photos = function(req, res){
console.log(req.body);
console.log(req.files)
console.log(req.files.img_file);
console.log("Uploading File");
fs.readFile(req.files.img_file.path, function (err, data) {
var newPath = __dirname + "./public/img/albums";
fs.writeFile(newPath, data, function (err) {
res.redirect("back");
});
});
};
//Post request to create new album
exports.createAlbum = function(req, res){
if (req.body && req.body.album)
var album_name = req.body.album;
else
var album_name = 'unknown_album-' + (parseInt(Math.random() * 5) + 1);
console.log(__dirname);
mkdirp('./public/img/albums/' + album_name, function (err) {
if (err)
console.error(err);
else
{
console.log('Folder created.');
res.render('admin/panel', {
title: 'אדמין',
message: 'תיקייה נפתחה בהצלחה',
album: album_name
});
}
});
};