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 
      } 
     } 
    }); 

希望它有幫助。