angularjs
  • multer
  • 2017-09-25 43 views 0 likes 
    0


    我上傳多個圖像到MongoDB使用multer
    我的前端部分是使用angular Js開發的。
    我可以將圖像上傳到MongoDB,但現在我想在HTML頁面上預覽圖像,然後將其上傳到數據庫。

    HTML代碼:
    如何在使用AngularJS發佈到數據庫之前預覽圖像?

    <div class="col-md-4"> 
        <div class="input-group"> 
         <input type="file" name="file" id='file' multiple="multiple" required="required" /> 
        </div> 
    </div> 
    


    角JS代碼

    $scope.upload = function() { 
          //var file = angular.element(document.querySelector('#file')).prop("files")[0]; 
           $scope.files = []; 
           $scope.uploadedFiles = []; 
           $scope.selectedFiles = []; 
           console.log('file length :' + angular.element(document.querySelector('#file')).prop("files").length); 
           for(var i = 0 ; i < angular.element(document.querySelector('#file')).prop("files").length ; i++){ 
            var file = angular.element(document.querySelector('#file')).prop("files")[i]; 
            console.log('file Name :' + file); 
            $scope.files.push(file); 
           } 
           console.log('Uploaded file :' + $scope.files); 
           // $scope.files.push(file); 
           $http({ 
            method: 'POST', 
            url: '/image/upload', 
            headers: { 'Content-Type': undefined }, 
            transformRequest: function (data) { 
             var formData = new FormData(); 
             formData.append('model', angular.toJson(data.model)); 
             for(var i = 0 ; i < data.files.length ; i++){ 
              formData.append('file', data.files[i]); 
              $scope.uploadedFiles.push(data.files[i]); 
             } 
             console.log('Sending File size :' + data.files.length); 
             //formData.append('file', data.files[0]); 
             return formData; 
            }, 
            data: { model: { title: 'hello'}, files: $scope.files } 
    
           }).then(function (res) { 
    
            console.log(res); 
           }); 
         } 
    



    我已經試過

    .then(function (res) { 
             $scope.selectedFiles = "/public/images/" + res.data.imagePaths[0]; 
    } 
    


    <div> 
    Images :{{selectedFiles}}<img ng-src="{{selectedFiles}}"> 
    </div> 
    
    我經過選擇的文件到HTML頁面


    ,但它沒有顯示圖像。
    我該怎麼做,請幫忙。

    +0

    ' 「/公/圖片/」 + res.data.imagePaths [0]'這行不通該圖像位於服務器中的「/ public/images」中。請看看[上傳前的Javascript預覽圖像](https://stackoverflow.com/questions/4459379/preview-an-image-before-it-is-uploaded) – masterpreenz

    回答

    0

    ,因爲這是尋找一個請檢查該plunker http://plnkr.co/edit/y5n16v?p=preview,基本思路如下所示

    fileReader.readAsDataUrl($scope.file, $scope) 
             .then(function(result) { 
              $scope.imageSrc = result; 
             }); 
    
    +0

    感謝您的回覆。所以'$ scope.imageSrc'將會有多個圖像數據,對吧? –

    +0

    目前'$ scope.imageSrc'將只包含一個圖像數據url .. –

    +0

    好吧,我的數據包含圖像數組,我怎樣才能將圖像數組獲取到'$ scope.imageSrc'中? –

    相關問題