Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在没有表单的情况下将图像上载到node js服务器?_Javascript_Html_Node.js_Forms_Express - Fatal编程技术网

Javascript 如何在没有表单的情况下将图像上载到node js服务器?

Javascript 如何在没有表单的情况下将图像上载到node js服务器?,javascript,html,node.js,forms,express,Javascript,Html,Node.js,Forms,Express,我有一个快速服务器运行,我想上传一个没有html标记的图像。这可能吗 当文件的值发生变化时,我使用此函数从输入中获取文件: function readImage (input) { var _URL = window.URL || window.webkitURL; if (input.files && input.files[0]) { var myImg = new Image(); myImg.onload = function () {

我有一个快速服务器运行,我想上传一个没有html标记的图像。这可能吗

当文件的值发生变化时,我使用此函数从输入中获取文件:

function readImage (input) {
  var _URL = window.URL || window.webkitURL;
  if (input.files && input.files[0]) {
    var myImg = new Image();
    myImg.onload = function () {
      var img = {
        image: myImg.src,
        file: input.files[0],
        w: this.width,
        h: this.height
      };
      return img;
    };
    myImg.src = _URL.createObjectURL(input.files[0]);
  }
}
你可以试试API。下面是一个使用jQuery的示例:

var data = new FormData();
data.append('image', input.files[0]);

$.ajax({
  url: '/foo',
  data: data,
  contentType: false,
  processData: false,
  success: function(response) {
    alert('Image uploaded!');
  },
  error: function(jqXHR, textStatus, errorMessage) {
    alert('Error uploading: ' + errorMessage);
  }
});
客户端:

    var image = $("#imageid")[0].files[0];
    var formdata = new FormData();
    formdata.append('image', image);
    $.ajax({
        url: '/uploads/',
        data: formdata,
        contentType: false,
        processData: false,
        type: 'POST',
        'success':function(data){
            alert(data);
        }
    });
服务器端: 使用骡子

    var express = require('express');
    var router = express.Router();
    var path   = require("path");
    var multer = require("multer");


    var uploading = multer({

        dest: './public/uploads/'

    });


    router.post('/', uploading.single('image'),function(req, res) {

        console.log(req.file);
        res.send(req.file);
    });

    module.exports = router;
输出: 服务器端:

{ fieldname: 'image',
  originalname: 'Untitled.png',
  encoding: '7bit',
  mimetype: 'image/png',
  destination: './public/uploads/',
  filename: 'bde1b15ba5b62b4106f86b49c73720ea',
  path: './public/uploads/bde1b15ba5b62b4106f86b49c73720ea',
  size: 52375 }

希望这有帮助

您可以添加服务器端部分吗?我无法让它工作…:解决了我的问题!我不仅附加了文件,还附加了一个对象,如{key:lorem,img:input.files[0]},而这些文件没有显示在req.files中。谢谢你的帮助;