繁体   English   中英

Node.js将我的图像从视图上传到控制器

[英]Nodejs uploading my image from view to controller

在我看来,我选择了一张图片。 在我的控制器中,我有一个名为

uploadImage: function (req, res){}

我有这行req.file ('photofile').upload (.....

所以我现在的问题是..如何将该图像从视图传递到控制器? 这样我就可以从req读取它了?

我假设您有一条绑定到您的uploadImage函数的路由。 如果没有,您可以使用express创建它:

var app = require('express')();
app.post('/your/upload/route', uploadImage);

如果要从视图上传文件,则有两种选择:

  • 使用简单的HTML <form><input type="file" /> 您必须在<form>标记中添加以下属性: enctype="multipart/form-data" 干得好:
<form method="post" enctype="multipart/form-data">
    <input type="file" name="photofile" />
    <input type="submit" />
</form>
  • 使用异步调用/your/upload/route作为POST请求,并将文件内容包含在FormData对象中。 在此示例中,我使用jQuery( $ )作为依赖项,并且执行AJAX调用,您可以根据需要进行调整。 但是请记住,请小心,因为所有/旧的浏览器都不支持此解决方案( 在此处列出 ):
<form onSubmit="upload()">
    <input id="image" type="file" />
    <input type="submit" />
</form>
function upload() {
    var inputFile = $('#image');
    if (inputFile.files[0]) { // Just checking if the user selected a file.
        var data = new FormData();
        data.append('photofile', inputFile.files[0]); // Add the file in the form data.

        $.ajax({ // Call your route
            url: '/your/upload/route', // The route to call
            data: data, // The FormData
            cache: false,
            contentType: false,
            processData: false,
            type: 'POST',
            success: function (data){
                console.log('Upload success!', data);
            },
            error: function (result, status, error){
                console.log('An error occurred.');
            }
        });
    } else {
        console.log('You didn\'t choose any image');
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM