如何使用AngularJS显示图像数据? (奇怪的回应格式)

时间:2017-03-21 05:17:29

标签: javascript html angularjs html5

图像存储在php服务器上的目录中。

服务:

.factory('PhotoService', function($q, $http) {
   return {
    getPhoto: function(photoName) {
    var url = dirInfo.template_directory + 'quoteCalc/images/Upload/' +      photoName;
    return $http.get(url).then(function(response) {
        return response.data;
    })
    .catch(function(error) {
        return "Photo not found: " + error;
    });
}
}
})

我使用此功能在控制器中调用该工厂。数据返回正常,但格式关闭,图像不显示。

function init() {
    let photo;
    PhotoService.getPhoto(imageName).then(function(result) {
        $scope.imgstr = result;
    });
};
init();

image / response.data以这种奇怪的格式出现。我不知道该怎么做。我试过了:

 var blob = new Blob([response.data], {type: 'application/octet-    binary'});
 return URL.createObjectURL(blob);

var reader = new FileReader();
return reader.readAsDataURL(response.data);

<img ng-src="data:image/png;base64,{{imgstr}}" />

没有任何作用。请帮忙。

这是返回的内容:

�����ExifMM*� ���(1�2��ï%HAppleiPhone
     

6HH9.2.12016:02:09 09:00:51    R Z “ ' 0221 b v       |F 234 234 0100 2 3    4“&amp; 2016:02:09 09:00:512016:02:09 09:00:51    JM@bSIs AppleiOSMM。 h 。   。 bplist00OVz2.VuiXe9   ozfl)1 | yggwzoXem'@ D1 \ vWSw8〜 H(O wboI Tp\ “9”. )xNT &gt; G $O R!i 3 d - + 20    ux7 Q%+#3“#j &amp; dY”。 7J&LT; = | [T)   L qL�vFEh:_*HR$hcl�Q?&C*zXJ�*hX_�.*3A;V-f2ubplist00�UflagsUvalueUepochYtimescale��:�;��#-/8: ?���+0�B����-$SSAppleiPhone 6 back camera 4.15mm f/2.2NW2:K RTZTbjv/$dz�d��2������2016:02:09A���http://ns.adobe.com/xap/1.0/<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.4.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:mwg-rs="http://www.metadataworkinggroup.com/schemas/regions/" xmlns:stArea="http://ns.adobe.com/xmp/sType/Area#" xmlns:apple-fi="http://ns.apple.com/faceinfo/1.0/" xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"> <mwg-rs:Regions rdf:parseType="Resource"> <mwg-rs:RegionList> <rdf:Seq> <rdf:li rdf:parseType="Resource"> <mwg-rs:Area rdf:parseType="Resource"> <stArea:y>0.363000</stArea:y> <stArea:w>0.042000</stArea:w> <stArea:x>0.969000</stArea:x> <stArea:h>0.056000</stArea:h> <stArea:unit>normalized</stArea:unit> </mwg-rs:Area> <mwg-rs:Type>Face</mwg-rs:Type> <mwg-rs:Extensions rdf:parseType="Resource"> <apple-fi:AngleInfoYaw>90</apple-fi:AngleInfoYaw> <apple-fi:AngleInfoRoll>0</apple-fi:AngleInfoRoll> <apple-fi:ConfidenceLevel>99</apple-fi:ConfidenceLevel> <apple-fi:Timestamp>2147483647</apple-fi:Timestamp> <apple-fi:FaceID>3</apple-fi:FaceID> </mwg-rs:Extensions> </rdf:li> </rdf:Seq> </mwg-rs:RegionList> <mwg-rs:AppliedToDimensions rdf:parseType="Resource"> <stDim:h>2448</stDim:h> <stDim:w>3264</stDim:w> <stDim:unit>pixel</stDim:unit> </mwg-rs:AppliedToDimensions> </mwg-rs:Regions> </rdf:Description> </rdf:RDF> </x:xmpmeta> ��� ��f���“ }!1AQa”q2 #B R $3br
  %安培;'()* 456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
  w!1AQaq“2 B #3R br   $ 4%&安培;'()* 56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ʌ&GT; CE RW(F TU-?)|1I'sԓֿ$ EVzrKJ}) - (TW&安培; grXO,8 = ^}:I \ =,#。 7F9Páǵ6    ' ^ z sڸ$ u $;Uq &lt; ?Z |O 7 d S { J % 'I��8#~���#P�w!olᏵr��m�X�w �?ʬ�.;��7�:u�U-F�e"�լW� W�y��*�S��j��8n*A�Ar|�8#�;3�,oĺ��� VR�Tb������^M��en?&<:�R���7���Ӟ��7��4ۘ�wj�w1��ҹ{�-[D�w�/p�����;u�)�<ێN��� B ?w���Z�ݦŊ>���j��J��֗Kk�Zб�T$��ǽz}��g}�h������ʄ�Ԫ-��$�̅����_lV�%L�By��:�k��Ԥ�DP6���Ҷ���؟ְt�c~uc�Yp[<r}ju�>�Fx�Z�K�Qx�?/l�T�j �gPx�)J�� F�� 6�Q���FNy�G���ݿ0�� G��&���U�)#aT�w��6�IsYGGv����� �݀I���ϵ,Nܠ���? ����z��>��f)�Nr�듁�֩l�m�h�� G ? K 9 B6   1S!2IԃI)XxRQTp9Xoz​​3F58 ˚F   2w㊢[L ո�á���j$ ��g�X�9䵹F���为F b ^ HXW [Y; R 3׾I2T = Q { Ÿ{TF#X7   VP)XPAK   | d | [ML | Gk中#X \6wDssЅ[\&安培;!t'Wx i Z k β(tta" AZ /NZ > {6 #Y Gs ( O? ݍJݍsk&amp; $ b+&lt; { R
  q 9   Gy06 ^ KX29h | Q0,}t˘`| hkirޕnz4w KRQ /:MH

     
    

P ' } l *Պ e�x'3�=�\���2��n�h����q����Z�W�nؠdu�;����:��s�-�$���7�y�����E�jR'�1��?:�,Rl��1�g sϥ2ʋ�@R v���u����{X�s��}m�%�@bxR\z���f� S X X3

  

2 个答案:

答案 0 :(得分:1)

@Phil的评论告诉我,我的情况已经过时了。我在角度控制器中创建了url并在ng-src中使用了它。我完全删除了这项服务,效果很好。

答案 1 :(得分:0)

上面的响应格式不是base64代码,因此现在可以将其呈现为图像。即使您尝试将响应内容编码为base64内容,它仍然无法正常工作。请检查服务器端存储的内容以及返回的内容。