2016-04-28 90 views
1

我使用https://github.com/nervgh/angular-file-upload/,我需要发送文件大小到我的后端服务器。角度文件上传大小

我没有找到任何解决方案,这是我收到标题:

{ 
    filename:'new02.png', 
    headers:{ 
    'content-disposition':'form-data; name="files"; filename="new02.png"', 
    'content-type':'image/png' 
    } 
} 
+0

在演示页面上,我看着Json按代码返回,有一段长度。函数onAfterAddingFile返回一个具有_file和长度的对象 – Alexis

+0

它不会传递类似于“Content-Length”的标头... – Davide

+0

您只需将正确的属性发送给您的大小......您可以在后端发送您想要的内容服务器,你有一个长度,所以发送它 – Alexis

回答

1
$scope.uploadFile = function(files) { 
files[0].type; //MIME type 
files[0].size; //File size in bytes 
}; 
+0

我也使用相同的逻辑 –

0

我采用了棱角分明文件上传过和的node.js服务器。

这是我如何上传我的文件在我的角度控制器:

$scope.uploadInternationalFile = function(file) { 
    if (file && file.length) { 
     file.upload = Upload.upload({ 
      url: '/api/upload', 
      method: 'POST', 
      file: file 
     }); 
     file.upload.then(function(response) { 
      // file Sent 
     }); 
    } 
}; 

我收到我的文件我的服务器上像这样带有故宫“multer”包:

module.js

var privateStorage = multer.diskStorage({ 
    destination: function(req, file, callback) { 
      callback(null, './files/'); 
     }, 
     filename: function(req, file, callback) { 
      callback(null, file.originalname); 
     } 
    }); 

    var limits = { 
     fieldNameSize: 100, 
     fileSize:20000000, 
     files: 1, 
     fields: 5 
    }; 

    var self = module.exports = { 
     uploadPrivate: multer({ 
      storage:privateStorage, 
      limits:limits 
     }).single('file') 
    }; 

这是我的API:

var fileUpload = require('module.js'); 
    app.post('/api/upload', function(req, res) { 
     fileUpload.uploadPrivate(req, res, function(err) { 
      if (err) { 
       // There is an upload error 
      } 
      else { 
       // Your file has been sent 
      } 
     } 
    }); 

希望它有帮助。