2017-05-04 18 views
1

ngファイルをアップロードしてファイルをアップロードしようとしていますが、サーバ上に別のファイル名でアップロードしています。ファイル名には元々正しい拡張子(.jpg、.pdf)が付いています。 以下は私のコードです。 コントローラ:元のファイル名でファイルを保存してngファイルをサーバにアップロードする

$scope.uploadPic = function (file) { 
     $scope.advert.userDetails={ 
     "name":userDetails.name, 
     "email":userDetails.email, 
     "role":userDetails.role 
    } 
     file.upload = Upload.upload({ 
      url: '/api/uploaders/uploads', 
      method: 'POST', 
      fields: { 
       details: $scope.advert 
      }, 
      file: file, 
      fileFormDataName: 'photo' 
     }); 

    file.upload.then(function (response) { 
     console.log("Postcontroller: upload then "); 
     $timeout(function() { 
      file.result = response.data; 
     }); 
    }, function (response) { 
     if (response.status > 0) 
      $scope.errorMsg = response.status + ': ' + response.data; 
    }); 

    file.upload.progress(function (evt) { 
     // Math.min is to fix IE which reports 200% sometimes 
     file.progress = Math.min(100, parseInt(100.0 * evt.loaded/evt.total)); 
     console.log("PostController: upload progress " + file.progress); 
    }); 
      file.upload.success(function (data, status, headers, config) { 
     // file is uploaded successfully 
     console.log('file ' + config.file.name + 'is uploaded successfully. Response: ' + data); 
     console.log(data); 
    }); 

} 

アピ:

var multer = require('multer'); 
var upload = multer({ dest: 'server/uploads/images'}); 
+0

が見えます。これを確認してください:http://stackoverflow.com/questions/32654578/reating-image-file-name-and-extension-after-upload-in-node-js-express-using – tomek550

答えて

0

それは、ファイル名を変更し、アップロードをngのいない、それはmulterです。これはセキュリティ上の理由によるものです。
簡単に言えば、アップロードしたファイルの正確なパスを悪意のある人が知ることはできません。彼らは可能性が実行することができます。

あなたが本当にしたい場合は、しかし、あなたはあなたのAPI側でこれを行うことができます。multerは、自動的にファイル名を変更しているよう

var multer = require('multer'); 

var storage = multer.diskStorage(
    { 
     destination: 'server/uploads/images', 
     filename: function (req, file, cb) { 
      cb(null, file.originalname); 
     } 
    } 
); 

var upload = multer(storage); 
+1

ありがとう。あまりにも。 – Akshay

関連する問題