通过FileUploader SAP UI5将Mutlipart表单数据发送到POST REST API

2020-08-15 11:29发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我有一个REST API(POST调用)来上传附件,我正在尝试创建一个SAP UI5对话框/应用程序以通过AJAX POST调用发送附件

我需要的表单数据为

  • 表名称:abc
  • table_sys_id:123
  • 文件:(二进制)

我还需要将身份验证传递到主URL

正确的前进方向是什么? 我尝试了多个可用选项,但没有运气。

我尝试过的方法之一,但它不正确

    
 handleUploadPress:function(){
 var oFileUploader = this.byId(" fileUploader");//oFileUploader.upload();

 oFileUploader.setUploadOnChange(true);
 var oFormData = new FormData();
 oFormData.append(" table_name"," abc");
 oFormData.append(" table_sys_id"," 123");
 jQuery.sap.domById(oFileUploader.getId()+"-fu")。setAttribute(" type"," file");
 oFormData.append(" file",jQuery.sap.domById(oFileUploader.getId()+" -fu")。files [0]);
 jQuery.ajax({
 网址:" https:localhost:4000/attachment/upload",数据:oFormData,
 快取:false,
 contentType:false,
 processData:false,类型:'POST',
 成功:功能(数据){},
 错误:function(){}});} 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我有一个REST API(POST调用)来上传附件,我正在尝试创建一个SAP UI5对话框/应用程序以通过AJAX POST调用发送附件

我需要的表单数据为

  • 表名称:abc
  • table_sys_id:123
  • 文件:(二进制)

我还需要将身份验证传递到主URL

正确的前进方向是什么? 我尝试了多个可用选项,但没有运气。

我尝试过的方法之一,但它不正确

    
 handleUploadPress:function(){
 var oFileUploader = this.byId(" fileUploader");//oFileUploader.upload();

 oFileUploader.setUploadOnChange(true);
 var oFormData = new FormData();
 oFormData.append(" table_name"," abc");
 oFormData.append(" table_sys_id"," 123");
 jQuery.sap.domById(oFileUploader.getId()+"-fu")。setAttribute(" type"," file");
 oFormData.append(" file",jQuery.sap.domById(oFileUploader.getId()+" -fu")。files [0]);
 jQuery.ajax({
 网址:" https:localhost:4000/attachment/upload",数据:oFormData,
 快取:false,
 contentType:false,
 processData:false,类型:'POST',
 成功:功能(数据){},
 错误:function(){}});} 
付费偷看设置
发送
3条回答
compass1988
1楼 · 2020-08-15 12:09.采纳回答

乔治,你好

我在ajax调用中观察到的一件事,就是设置发布数据的内容类型。 也可以发布您面临的错误

 jQuery.ajax({
 网址:" https:localhost:4000/attachment/upload",数据:oFormData,
 快取:false,
                                         编码类型:" multipart/form-data",
 contentType:false,
 processData:false,类型:'POST',
 成功:功能(数据){},
 错误:function(){}

 }); 
追夢秋陽
2楼-- · 2020-08-15 12:07

嗨, Prashil

我基本上想要实现的是将附件上传到Service-Now事件。

//handleUploadPress在按钮上单击
 handleUploadPress:function(){
 var oFileUploader = this.byId(" fileUploader");
//oFileUploader.upload();

 oFileUploader.setUploadOnChange(true);
 var oFormData = new FormData();


 oFormData.append(" table_name"," incident");
 oFormData.append(" table_sys_id"," dbcda44a2f351010115d235df699b69c");


 jQuery.sap.domById(oFileUploader.getId()+" -fu")。setAttribute(" type"," file");
 oFormData.append(" file",jQuery.sap.domById(oFileUploader.getId()+" -fu")。files [0]);

 var uploadAttachUrl ="/目标/SNOW_Test/api/现在/附件/上传"
 jQuery.ajax({
 网址:uploadAttachUrl,
 数据:oFormData,
 快取:false,
 contentType:" multipart/form-data",
 编码类型:" multipart/form-data",
 processData:否,
 输入:" POST",
 成功:功能(数据){

 },
 错误:功能(){
 }
 });
 } 

我正在获取HTTP 400

尝试直接使用SNOW REST API时,情况如下:

何必丶何苦呢
3楼-- · 2020-08-15 12:14

此问题已解决:

 jQuery.ajax({
 网址:uploadAttachUrl,
                 方法:" POST",
                 超时:0,
                 标头:{
                    " Accept":"应用程序/json"
                 },
                 编码:" multipart/form-data",
 contentType:false,
 processData:否,
                 crossDomain:是的,
 快取:false,
                 数据:oFormData,
 成功:功能(数据){

 },
 错误:功能(){
 }
 }); 

一周热门 更多>