Node.js 流文件上传为文件夹构建

标签 node.js file-upload express stream

我正在使用 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">&times;</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/

相关文章:

javascript - 将 CSV 文件从浏览器发送到 nodejs 服务器

java - FileNotFoundException 打开失败 : ENOENT (No such file or directory) while upload any type of file by Samsung devices

php - 图像存储 - 更好的方式

javascript - Express中的JS运行时错误

javascript - 无法在 Node js 中使用 connect-busboy

javascript - JSON Stringify 忽略 Redis 发布上的嵌套对象

node.js - 使用字符串调用类函数

javascript - Node 更新特定包

JAVA如何添加方法的输出

javascript - Firebase 函数 Express : How to get URL params with paths