2017-08-28 15 views
0

私がng-webcamを使用してウェブカムから写真を撮ることができる角度のフォームを作成し、写真を撮った後、これをbase64画像としてスコープに保存します。今私はangular-file-uploadでこれをアップロードしようとしています。しかし、私はそれがどのように機能するのかよく分かりません。プロジェクトの例はPCから画像をアップロードしていますが、base64画像を設定して送信したいと思います。角度ファイルアップロードでbase64画像をアップロード

どうすればいいですか?

は、これは私が私がuploadProfilePicture();と呼ばれる機能がだから私は何をしたいのか、私はあること$scope.uploader$scope.photoであると仮定し、要求の内側に入れて使用して、コンピュータから写真をアップロードする方法通常、

を更新しました私のベース64画像。

//This is where I take the image from de webcam 
$scope.onCaptureComplete = function(src) { 
    $scope.photo = src[0]; 
}; 

$scope.uploader = new FileUploader({ 
    url: 'api/user/picture' 
}); 

// Called after the user selected a new picture file 
$scope.uploader.onAfterAddingFile = function(fileItem) { 
    if ($window.FileReader) { 
    var fileReader = new FileReader(); 
    fileReader.readAsDataURL(fileItem._file); 

    fileReader.onload = function(fileReaderEvent) { 
     $timeout(function() { 
     $scope.imageURL = fileReaderEvent.target.result; 
     // console.log($scope.imageURL); 
     $scope.localImg = true; 
     }, 0); 
    }; 
    } 
}; 

// Called after the user has successfully uploaded a new picture 
$scope.uploader.onSuccessItem = function(fileItem, response, status, headers) { 
    $scope.localImg = false; 

    // Show success message 
    $scope.success = true; 

    // Populate user object 
    $scope.user = Authentication.user = response; 

    // Clear upload buttons 
    $scope.cancelUpload(); 
}; 

// Change user profile picture 
$scope.uploadProfilePicture = function() { 
    // Clear messages 
    $scope.success = $scope.error = null; 

    // Start upload 
    $scope.uploader.uploadAll(); 
}; 
+0

あなたの質問が明確ではありません。すでにベース64形式の画像がありますが、なぜ角度ファイルアップロードが必要ですか?画像をサーバーに直接送ることはできませんか? – Rahul

+0

@Rahul私はコンピュータからのアップロードファイルのためにそれを使用しているので、私はいくつかのコードで質問を更新しました、私はアップロードした人を介して私の範囲にある私の範囲にある画像を送る必要があります。 – Ellebkey

答えて

0

これは私のために働いてください。

ビュー:

<img ng-src="data:image/jpeg;base64,{{unImage.image}}" class="images" /> 

<div class="col-md-9 lato size-twelve grey" editable-file="editImage" e-onchange="angular.element(this).scope().uploadFile(this, angular.element(this).scope().allUnits.images)" e-rows="7" e-cols="40" e-name="image" e-form="rowform" e-multiple> 
</div> 

コントローラー機能:

$scope.uploadFile = function (input, allUnits) { 
      allUnits.images = []; 
      if (input.files && input.files[0]) { 
       for (var i = 0; i < input.files.length; i++) { 
        allUnits.images.push(input.files[i]); 
       } 
      } 
}; 

var file=image['images']; 
Upload.upload({ 
       method: 'POST', 
       headers: { 
        'Authorization': 'Bearer ' + window.localStorage.getItem('token') 
       }, 
       url: baseUrl + '/test/upload-image', 
       data: {id: data.id, file: file} 
}); 
関連する問題