2016-06-20 54 views
3

其上傳任何類型的文件是否有任何指示或JS文件上傳任何格式的文件像.PPT,.MP4,TXT,.DOC ....指任何類型。還有如何使用角度js下載這些文件。即使我得到了一些指令,但沒有用。所以,我在這裏質疑,因爲我花了一整天的時間來獲得它,但徒勞無功。任何演示將非常有幫助。如此可能,幫助我。感謝U如何上傳基於採用了棱角分明的js

+1

用於上傳 - 看看[NG-文件上傳(https://github.com/danialfarid/ng-file-upload)。和[這裏](https://angular-file-upload.appspot.com/)演示頁面 –

+0

謝謝@AlekseyL。,爲此,但即使我想知道下載。因爲我根據需要上傳所有類型的文件。所以讓我知道。請 –

回答

2

夥計們很容易上傳任何類型的文件使用角js。我在這裏張貼,因爲我花了近一天的時間來搜索並得到正確的答案。這是proc。

  1. 首先注入這兩個文件在您的index.html的,

    <script src="ng-file-upload.min.js"></script> 
    <script src="ng-file-upload-shim.min.js"></script> 
    
  2. 在你的script.js

    現在注入 「ngFileUpload」 作爲依賴

  3. 現在寫了下面的代碼從你想上傳文件的地方,即在你的html文件中,即在你的html文件中

    <form ng-controller="MyCtrl as up" name="up.upload_form" class="form-horizontal form-label-left"> 
    <div class="item form-group"> 
            <label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Description <span class="required">*</span> 
          </label> 
            <div class="col-md-4 col-sm-6 col-xs-12"> 
        <input 
         type="file" 
         ngf-select 
         ng-model="up.file" 
         name="file" 
         ngf-max-size="20MB" 
         /> 
    
        <button type="submit" ng-click="up.submit()">submit</button> 
        <p>{{up.progress}}</p></div></div> 
    </form> 
    
  4. 在控制器寫入,

    ZustShopController.controller('MyCtrl',['Upload','$window',function(Upload,$window){ 
    var vm = this; 
    vm.submit = function(){ //function to call on form submit 
    if (vm.upload_form.file.$valid && vm.file) { //check if from is valid 
        vm.upload(vm.file); //call upload function 
    } 
    } 
    
    vm.upload = function (file) { 
    Upload.upload({ 
        url: 'http://serveripaddress:portnumber/upload', //webAPI exposed to upload the file 
        data:{file:file} //pass file as data, should be user ng-model 
    }).then(function (resp) { //upload function returns a promise 
        if(resp.data.error_code === 0){ //validate success 
         $window.alert('Success ' + resp.config.data.file.name + 'uploaded. Response: '); 
        } else { 
         $window.alert('an error occured'); 
        } 
    }, function (resp) { //catch error 
        console.log('Error status: ' + resp.status); 
        $window.alert('Error status: ' + resp.status); 
    }, function (evt) { 
        console.log(evt); 
        var progressPercentage = parseInt(100.0 * evt.loaded/evt.total); 
        console.log('progress: ' + progressPercentage + '% ' + evt.config.data.file.name); 
        vm.progress = 'progress: ' + progressPercentage + '% '; // capture upload progress 
    }); 
    }; 
    }]); 
    

這裏的服務器IP地址是您的服務器地址和端口號在其上運行服務器。

在客戶端不需要的服務/工廠現在

在服務器端包含所有需要再添加寫,

 var storage = multer.diskStorage({ //multers disk storage settings 
    destination: function (req, file, cb) { 
     cb(null, './uploads/'); 
    }, 
    filename: function (req, file, cb) { 
     var datetimestamp = Date.now(); 
     cb(null, file.originalname); 
    } 
    }); 

    var upload = multer({ //multer settings 
       storage: storage 
      }).single('file'); 

     /** API path that will upload the files */ 
     app.post('/upload', function(req, res) { 
    upload(req,res,function(err){ 
     if(err){ 
      res.json({error_code:1,err_desc:err}); 
      return; 
     } 
     res.json({error_code:0,err_desc:null}); 
    }); 
    }); 

這麼簡單,因爲它是。

注:在服務器端創建一個稱爲上傳,所有的文件將被保存的文件夾。

或者你也可以遵循我做我的代碼成功的地方,但具有一些改變下面的鏈接。 http://code.ciphertrick.com/2015/12/07/file-upload-with-angularjs-and-nodejs/

感謝。如果有幫助,請投票。

+0

謝謝@Nitin Agarwal這真的很有幫助,它的工作很棒。 – ANK

+0

是否有任何過程來下載這些文件。這會幫助我很多。 – ANK