2016-02-25 3 views
2

Мне нужно передать файл sap.m.Image в тело (данные) запроса OData. Ниже приведен код, и я хотел бы знать, что нужно передать параметру data запроса, чтобы мое изображение было загружено на сервер. Когда я прохожу ImgValue, который содержит dataurl он выдает ошибку о том,Как передать изображение в тело запроса OData в SAPUI5?

DOMException: Не удалось выполнить «createElementNS» на «Документ»: Полное имя при условии («d: 0») содержит недопустимый Name- Стартовый символ

OData.request({ 
    requestUri: "http://ambrifiori.am.brothergroup.net:8081/sap/opu/odata/sap/ZPVSYSTEM_SRV/PromoImagesSet/", 
    method: "POST", 

    headers: { 
     "X-Requested-With": "XMLHttpRequest", 
     "Content-Type": "application/atom+xml", 
     "DataServiceVersion": "2.0", 
     /*"Accept": "application/atom+xml,application/atomsvc+xml,application/xml", */ 
     "X-CSRF-Token": header_xcsrf_token, 
     "slug": "ajay122", 
    }, 
    data: ImgValue, 
}); 
+0

[Кодируйте бинарного изображения в формате Base64] (http://stackoverflow.com/questions/6150289/how-to-convert-image -into-base64-string-using-javascript) и добавить эту строку к свойству 'data' – Qualiture

+0

My ImgValue содержит это значение: data: image/gif; base64, R0lGOD lhCwAOAMQfAP //// 7 +/vj4 + Hh4eHd3d/v7 +/Dw8HV1dfLy8ubm5vX19e3t7fr 6 + nl5edra2nZ2dnx8fMHBwYODg/b29np6eujo6JGRkeHh4eTk5LCwsN3d3dfX 13Jycp2dnevr6 //// yH5BAEAAB8ALAAAAAALAA4AAAVq4NFw1DNAX/o9imAsB tKpxKRd1 + YEWUoIiUoiEWEAApIDMLGoRCyWiKThenkwDgeGMiggDLEXQkDoTh CKNLpQDgjeAsY7MHgECgx8YR8oHwNHfwADBACGh4EDA4iGAYAEBAcQIg0Dk gcEIQA7 Разве это не формат base64? –

+0

Вам нужно только отправить данные base64, то есть часть после «data: image/gif; base64», – Qualiture

ответ

0

я не смог опубликовать данные изображения через OData поэтому я Аякса ... Это то, что я сделал.

   OData.request 
      ({ 
       requestUri:  "http://AMBRIFIORI.am.brothergroup.net:8081/sap/opu/odata/sap/ZUI5_DAILY_SALES_SRV/DailySalesSet", 
       method: "GET", 
       headers: 
       {  
        "X-Requested-With": "XMLHttpRequest", 
        "Content-Type": "application/atom+xml", 
        "DataServiceVersion": "2.0",   
        "X-CSRF-Token":"Fetch"         }      
      }, 
      function (data, response) 
      { 
       header_xcsrf_token = response.headers['x-csrf-token'];  
       csrftoken = header_xcsrf_token; 

       $.ajax({ 
         url: 'http://ambrifiori.am.brothergroup.net:8081/sap/opu/odata/sap/ZPVSYSTEM_SRV/PromoImagesSet/', 
         //dataType: 'json', 
         data: imgData, 
         //data: image, 
         type: 'POST', 
         headers: { "X-Requested-With": "XMLHttpRequest",       
          "Content-Type": "image/png", 
          "DataServiceVersion": "2.0", 
          /*"Accept": "application/atom+xml,application/atomsvc+xml,application/xml", */ 
          "X-CSRF-Token": csrftoken, 
          "slug": slug, 
          },      
         success: function(data) { 
          debugger; 
         console.log(data); 
         }, 
          error: function(data) { 
           debugger; 
           console.log(data); 
          } 
         });     

My ImgData состоит из изображения в формате базы данных URI base64. Я просто добавил одно заявление в Imgvalue, чтобы преобразовать его в ImgData который

   var imgData = JSON.stringify(ImgValue); 
Смежные вопросы