使用node.js预览上传的图像文件

ceadreak

在express.js应用程序中,我有一个包含一些字段的表单,其中一个是上载图像字段。

当用户浏览其图像文件并选择一个时,我想在提交表单之前在“预览块”中显示此文件。

我想到了这些动作:

  1. 点击浏览按钮
  2. 选择一个文件
  3. 已选择文件=>上载,重命名,调整大小,裁剪并存储在/tmp目录中
  4. 在预览块中显示新文件
  5. 表单验证=>将重命名的文件移动到适当的应用程序目录中

我正在寻找实现此过程的最佳方法。

瓦伦·查克瓦蒂(Varun Chakervarti)

解决此问题的步骤。

  1. 使用输入类型文件的HTML文件。

    <input id="upload_images" type="file" multiple="multiple">
    
  2. 将事件侦听器添加到输入类型文件的change事件。

    if(document.addEventListener) {
        document.getElementById("upload_images").addEventListener("change", function(e){
            uploadImages(e);
        });
    }
    else {
        document.getElementById("upload_images").attachEvent("onchange", function(e){
            uploadImages(e);
        });
    }
    
  3. 当用户选择文件时,创建一个表单数据,并使用ajax将其发送到服务器(Mutipart数据)。

    function uploadImages(e) {
        var uploadedFiles = e.target.files;
        var xhrObj = new XMLHttpRequest();
        xhrObj.open('POST', "<<your node>>/<<request URI>>", true);
        xhrObj.onreadystatechange = function () {
            if(this.readyState == this.DONE) {
                if(this.status != 200) {
                    // Show Error
                }
                else {
                    var returnedResponse = xhrObj.responseText;
                    if(returnedResponse == 'success') { // check your returned data like I was returning "success"
                        // Success - Do the tasks
                    }
                }
            }
        };
        var requestFormData = new FormData();
        for(var i=0; i<uploadedFiles.length; i++) {
            requestFormData.append('data', uploadedFiles[i]);
        }
        xhrObj.send(requestFormData);
    }
    
  4. 在服务器(nodejs)上,使用强大的功能来接收上载的文件并将其存储在所需的任何位置。

    // require formidable
    // require imagemagick
    function processUploadImages(req, res) {
        var form = new formidable.IncomingForm();
        form.uploadDir = __dirname+'/uploaded_images/;
        form.maxFieldsSize = 20 * 1024 * 1024;
        form.keepExtensions = true;
        form.onPart = function(part) {
            form.handlePart(part);
        }
        form.on('file', function(name, file) {
            // Handle file data like:
            // file.path
            // file.name
        });
        form.on('end', function() {
            //show complete
        });
        form.parse(req, function(error, fields, files) {
            // create thumbnail images
            // return response
        });    
    }
    
  5. 在server(nodejs)上,使用imagemagick创建缩略图,并将其存储在可以放置在任何地方的文件夹中。

  6. 将已保存的(图像和缩略图)链接发送回响应中。

  7. 创建一个图像标签,并在src标签中使用这些链接。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法使用node.js / puppeteer上传图像文件

来自分类Dev

Firebase Storage从Node.js上传图像文件

来自分类Dev

使用Nightwatch.js上传图像文件

来自分类Dev

如何使用Express Node.js上传图像文件并显示

来自分类Dev

无法使用Wordpress REST API(Node JS)上传图像文件

来自分类Dev

如何使用Multipart上传图像文件?

来自分类Dev

如何使用axios上传图像文件?

来自分类Dev

使用 Selenium 上传图像文件

来自分类Dev

使用okhttp v3.2.0上传多个图像文件

来自分类Dev

如何使用FileReader API从url上传图像文件?

来自分类Dev

使用PHP将单个图像文件上传到FTP

来自分类Dev

需要使用Curl上传JSON和图像文件

来自分类Dev

图像文件未使用multer上传/创建

来自分类Dev

使用formData和Axios上传图像文件

来自分类Dev

使用PHP将单个图像文件上传到FTP

来自分类Dev

使用okhttp v3.2.0上传多个图像文件

来自分类Dev

使用html和javascript上传图像文件返回fakepath

来自分类Dev

使用Angular JS从asp.net MVC中的文件上传器中删除特定的图像文件

来自分类Dev

使用Angular JS从asp.net MVC中的文件上传器中删除特定的图像文件

来自分类Dev

多个图像文件并使用文件阅读器进行预览

来自分类Dev

使用React钩子在React js中预览上传的图像

来自分类Dev

发送图像文件响应-node.js

来自分类Dev

使用canvas.toDataURL()中的node.js保存图像文件

来自分类Dev

无法使用文件上传将图像上传到node.js中的特定文件夹

来自分类Dev

如何使用 nest.js 正确返回图像文件?

来自分类Dev

使用PDO将图像位置上传到数据库,将图像文件上传到目录?

来自分类Dev

使用Xvfb在无头模式下运行测试时,无法使用sendkeys()上传图像文件?

来自分类Dev

在Rails 4.2中使用回形针上传非图像文件时出错

来自分类Dev

使用签名的URL将图像文件上传到Google Cloud时出现CORS错误

Related 相关文章

  1. 1

    无法使用node.js / puppeteer上传图像文件

  2. 2

    Firebase Storage从Node.js上传图像文件

  3. 3

    使用Nightwatch.js上传图像文件

  4. 4

    如何使用Express Node.js上传图像文件并显示

  5. 5

    无法使用Wordpress REST API(Node JS)上传图像文件

  6. 6

    如何使用Multipart上传图像文件?

  7. 7

    如何使用axios上传图像文件?

  8. 8

    使用 Selenium 上传图像文件

  9. 9

    使用okhttp v3.2.0上传多个图像文件

  10. 10

    如何使用FileReader API从url上传图像文件?

  11. 11

    使用PHP将单个图像文件上传到FTP

  12. 12

    需要使用Curl上传JSON和图像文件

  13. 13

    图像文件未使用multer上传/创建

  14. 14

    使用formData和Axios上传图像文件

  15. 15

    使用PHP将单个图像文件上传到FTP

  16. 16

    使用okhttp v3.2.0上传多个图像文件

  17. 17

    使用html和javascript上传图像文件返回fakepath

  18. 18

    使用Angular JS从asp.net MVC中的文件上传器中删除特定的图像文件

  19. 19

    使用Angular JS从asp.net MVC中的文件上传器中删除特定的图像文件

  20. 20

    多个图像文件并使用文件阅读器进行预览

  21. 21

    使用React钩子在React js中预览上传的图像

  22. 22

    发送图像文件响应-node.js

  23. 23

    使用canvas.toDataURL()中的node.js保存图像文件

  24. 24

    无法使用文件上传将图像上传到node.js中的特定文件夹

  25. 25

    如何使用 nest.js 正确返回图像文件?

  26. 26

    使用PDO将图像位置上传到数据库,将图像文件上传到目录?

  27. 27

    使用Xvfb在无头模式下运行测试时,无法使用sendkeys()上传图像文件?

  28. 28

    在Rails 4.2中使用回形针上传非图像文件时出错

  29. 29

    使用签名的URL将图像文件上传到Google Cloud时出现CORS错误

热门标签

归档