我正在使用 Node 和 Express 为我的网站做一些 CMS。 我想使用一个表单来放置多个文件,并将这些文件存储到 public/image/:foldername 中。
所以我创建了一个表单,它有两个输入: 1.event——即事件名称 2.file——明显是输入的文件
现在,当管理员登录并看到此表单时,他正在输入他的事件名称,例如“ “生日” 以及与之关联的图像文件。
最终我希望结构是这样的: 民众/ /图像 /生日 图片1 图片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")
}
};
读取流和写入流不起作用,我不知道如何制作这个结构。
最佳答案
应该是
<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' />
关于Node.js 流文件上传为文件夹构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20846330/