2017-09-25 24 views
0


multerを使用して複数の画像をMongoDBにアップロードしています。
私のフロントエンド部分は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コード:私は「しようとしたVEの何

$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の下に示されていますあなたのサーバの '/ 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を確認してください、基本的な考え方は、これが探しているので、[0] `これが機能することはありません

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

返信いただきありがとうございます。だから '$ scope.imageSrc'は複数の画像データを持っていますよね? –

+0

現在 '$ scope.imageSrc'には1つのimage-data-urlしか含まれていません。 –

+0

大丈夫、データに画像の配列が含まれていますが、どのように画像の配列を' $ scope.imageSrc'に入れることができますか? –

関連する問題