2017-02-06 9 views
1

게이트웨이에서 이미지를 읽으 려하고 있습니다. 나는 SAP 게이트웨이에서 직접이 URI를 실행하면sapui5에서 oDatamodel V2를 사용하여 이미지를 읽는 방법은 무엇입니까?

가 확인을 실행하고 이미지 데이터를 읽어 : /sap/opu/odata/sap/ZSA_USERS_SRV/UserPhotoSet('[email protected]')/$value "

지금 나는 아래의 코드를 사용하여 내 sapui5 응용 프로그램에서이 이미지를 읽을 수 있지만, 난 그냥 오류 "EventProvider sap.ui.model.odata.v2.ODataModel - 데이터가 서비스에 의해 검색되지 않았다"얻을

내가 여기 실종?

var oModel = this.getOwnerComponent().getModel(); 
    oModel.read("/UserPhotoSet('[email protected]')/$value", { 
     success: function(oData, oResponse) { 
      alert("Success read userphotto"); 
      img.setSrc(oData); 
     }, 
    }); 
+0

uri /sap/opu/odata/sap/ZSA_USERS_SRV/UserPhotoSet('[email protected]')/$value가 브라우저에서 작동합니까? –

+0

안녕하세요. 네, 브라우저에서 잘 작동합니다! –

+0

이 서비스의 성공에 대한 응답 데이터는 무엇입니까? – Saddamhussain

답변

1

는 귀하의 경우 모든 요에 oModel.read (...)를! 사용하지 마십시오 u는해야 할 이미지의 속성 SRC는 문자열입니다

img.setSrc("/path/to/my/service/UserPhotoSet('[email protected]')/$value"); 

입니다 - it's a URI!

이미지 파일이 저장된 URL의 상대 경로 또는 절대 경로. 경로는 실제와

은 물론, 당신은 교체해야한다는 규칙 "/ 경로 /로/내/서비스 /"다음 장치의 밀도에 따라 밀도 인식 형식에 적용 할 것 경로 ...

XML에서
+0

안녕하세요 나비! 답변 해주셔서 감사합니다! 나는 당신이 권했던 것을했지만 이미지는로드되지 않습니다. 이것은 내 XML 조각에있는 이미지의 src에 넣은 것입니다 : ' 네트워크에서 응답에"이 요청에는 응답 데이터가 없습니다 "라는 메시지 만 표시되고 아무 것도 볼 수 없습니다. 오류 :/ –

+0

일반적으로 $ value를 사용하면 base64 문자열 대신 실제 이미지 파일 내용을 반환합니다. 추가 힌트를 추가 한 후 서비스가 base64 문자열로 파일을 반환하는 것을 볼 수 있습니까? 그리고 이것은 파일이 이런 방식으로 DB에 저장되기 때문입니다. 이미지 컨트롤이 데이터 URI를 올바르게 처리 할 수 ​​있는지 확실하지 않습니다. 어쨌든, 당신이 할 수있는 것은 프론트 엔드로 보내기 전에 백엔드에서 base64 문자열을 디코딩하는 것입니다. 이럴 때마다 내가하는 일은 내가 선호하는 것이 아닙니다. – Nabi

+0

yor 서비스의 모든 세부 사항을 알지 못해서도 힘든 일이지만 어쩌면 https://blogs.sap에서 실행중인 예제가 있습니다.com/2017/02/08/display-images-in-sapui5-northwind-odata-service/help에서 받았다. – Nabi

0

: 자바 스크립트 컨트롤러에서

<Image id="imgPreviewForm" 
     class="sapUiSmallMarginTopBottom" 
     width="300px" height="150px" visible="true" src=""> 
</Image> 

:

var img=this.getView().byId("imgPreviewForm"); 
    img.setSrc("/sap/opu/odata/sap/ZTEST_PDF_SRV/FileSet 
       ('Test.jpg')/$value"); 
+0

일하고 있습니다.하지만 한 가지 요청 만 보내면 모델에 저장할 이미지가 더 많이 생깁니다. 해당 모델을 보도록 설정했습니다. 내가 어떻게 그렇게 할 수 있니? –