如何使用post方法从方法上传文件

时间:2016-05-18 11:37:34

标签: javascript html angularjs node.js html5

//这是我的控制器

()

//这是我的服务

function addFile(file){
        alert("inside add file");
        customerService.uploadCsv(file).then(function(response){
            if(response=="success"){
                alert("file uploaded");
            }else{
                alert("something went wrong");
            }
        },
        function(error){
            alet("error")

        });
    }

我必须以密钥值发送文件,密钥为'upl',值为file.I ma从视图中获取文件(html)

2 个答案:

答案 0 :(得分:1)

formData,请参阅Document



  this.uploadCsv = function(file) {
    alert("inside upload csv service ");
    
    var fd = new FormData();
    fd.append('upl', file);
    
    $http.post('http://localhost:3005/customers/csv', fd, {
        transformRequest: angular.identity,
        headers: {
          'Content-Type': undefined
        }
      })
      .then(function(response) {
          deferred.resolve(response.data);
          return deferred.promise;
        },
        function(error) {
          deferred.reject(error);
          return deferred.promise;
        });
  }; //




答案 1 :(得分:1)

我看到你用Node.js标记了这篇文章。如果您正在使用Node,那么有一个有用的模块可以轻松上传文件:Multer

只需添加:

var multer  = require('multer')
var upload = multer({ dest: 'uploads/' })

已在服务器上创建/上传(根据需要命名)。

然后,如果你以Express为例,只需用:

来调用它
app.post('/profile', upload.single('fileName'), function (req, res, next) { // code here });

最后不要忘记在视图中将enctype添加到视图中,如描述here(文件检查表单的multipart / form-data)。

已经完成了!