2016-07-14 15 views
2

をロードできません。アンロード関数がAngularJSで書かれています。サーバーからイメージファイルのbase64文字列を取得し、$ scope.product.imageにこのbase64文字列を格納しました。このbase64 文字列を表示しようとすると、コンソールでERR_INVALID_URLエラーが発生します。私のHTMLページをロードしているときにBase64イメージ

エラーメッセージは、次のようになりますGET:データ:画像/ JPG; base64,9j_4AAQSK ..........ネット:ERR_INVALID_URLを私のHTMLは、この

<section ng-show="product.image"> 
      {{product.image}} /* This actually displays the content of base64 string. This confirms that value is reaching properly*/ 
      <img ng-src="{{'data:image/jpg;base64,'+product.image}}"/> 
</section> 
のように見えます

私app.jsは、私が<img data-ng-src="data:image/jpg;base64,{{product.image}}">が、運を試してみました。この

$scope.onload = function() 
{ 
    $http({method:'GET', url:'rest/product/onLoad'}) 
    .success(function (response){ 
     $scope.product.image = response.image; 

    }); 
}; 

のように見えます。

base64文字列をイメージとしてロードするにはどうすればよいですか?

+0

はあなたのコードに問題を見ることができません。あなたは 'ng-src'の値をコピーしてブラウザのアドレスバーに入れて、data-urlが動作するかどうかを確認しましたか? – MMhunter

+0

ng-src値(data-ng-src = "data:image/jpg; base64、** base64 string value **)をロードしようとすると、このサイトには到達できません。私のbase64文字列に問題があります ローカルマシン(つまりc:\ images)からbase64にイメージを変換し、それをangularJSへの応答として送信するWebサービスを書きました。 angularJSでは、 $ scope.product.image。ng-srcを使用してこの値を読み込もうとすると、このエラーが発生します。 何も見つかりませんでしたか? –

答えて

1

エラーが発生すると、データ自体が正しくないことを意味します。

接頭辞が正しいため、取得するbase64文字列に問題がある必要があります。

ブラウザのアドレスバーにデータURLを入れて、機能するかどうかを確認してください。

+0

ng-srcの値を読み込もうとしたとき(つまりdata-ng-src = "data:image/jpg; base64、** base64 string value **)、このサイトには到達できません。私のbase64文字列に問題はありますか? ローカルマシン(つまりc:\ images)からbase64にイメージを変換し、それをangularJSへの応答として送信するWebサービスを作成しました。 angularJSでは、私は$ scope.product.imageに応答値を割り当てました。 ng-srcを使用してこの値をロードしようとすると、このエラーが発生します。 何か私は行方不明ですか? –

+0

あなたのwebserviceで生成されたbase64が最初に動作するかどうかを確認する必要があります。それが正しい場合、 'data:image/jpg; base64、base64 string value'をブラウザのアドレスバーに入力すると、ウィンドウに画像が表示されます。 Webサービス内の何が正しく生成されている場合、多分あなたはクライアント側(anglejs)で取得するものと同じかどうかをチェックする必要があります。 – MMhunter

+0

私はwebserviceから同じ値を受け取りました。私はhtmlで$ scope.product.imageの値を表示してこれをチェックし、正しく表示しています。 このbase64の値を入力として別のJavaコードを書き、画像にデコードして画像ファイルに書き込んだので、画像が正しく出力されています。 –

-1

は、以下のように使用してみてください:

ng-src="data:image/jpg;base64,{{product.image}}" 
0

発着信画像データ、このような関数スルー:コントローラで

<img data-ng-src="{{getImage(product.image)}}" /> 

$scope.getImage = function(data){ 
    return 'data:image/jpeg;base64,' + data; 
} 
関連する問題