¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo enviar archivos adjuntos a través de una API REST en SAP UI5 con AJAX POST

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 22 Vistas
0
Cargando...

Hola Expertos,

Tengo una API REST (llamada POST) para subir archivos adjuntos y estoy intentando crear un Diálogo/Aplicación SAP UI5 para enviar el archivo adjunto a través de una llamada AJAX POST

Necesito los Datos del Formulario como

  • table_name: abc
  • table_sys_id: 123
  • file: (binario)

También necesito pasar la autenticación a la URL principal

¿Cuál es la manera correcta de proceder? He probado múltiples opciones disponibles y no he tenido suerte.

Uno de los enfoques que probé pero es incorrecto

<l:VerticalLayout><u:FileUploader
			id="fileUploader"name="myFileUpload"
			tooltip="Sube tu archivo al servidor local"
			placeholder="Elige un archivo para subir..."></u:FileUploader><Button
			text="Subir Archivo"
			press="handleUploadPress"/></l:VerticalLayout>
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({
					url:"https:localhost:4000/attachment/upload",data: oFormData,
					cache: false,
					contentType: false,
					processData: false,type:'POST',
					success:function(data){},
					error:function(){}});}
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

3 Respuestas

0
Cargando...

Este problema está resuelto:

jQuery.ajax({
            url: uploadAttachUrl,
            method: "POST",
            timeout: 0,
            headers: {
                "Accept": "application/json"
            },
            enctype: "multipart/form-data",
            contentType: false,
            processData: false,
            crossDomain: true,
            cache: false,
            data: oFormData,
            success: function (data) {

            },
            error: function () {
            }
        });
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola wasnik ,

Lo que estoy intentando lograr es subir un archivo adjunto a un incidente de Service-Now.

//handleUploadPress is on a button click 
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 = "/destination/SNOW_Test/api/now/attachment/upload"
	jQuery.ajax({
		url: uploadAttachUrl,
		data: oFormData,
		cache: false,
		contentType: 'multipart/form-data',
		enctype: 'multipart/form-data',
		processData: false,
		type: 'POST',
	        success: function (data) {

		},
		error: function () {
		}
	});
}

Estoy recibiendo un error HTTP 400

Al intentar la API REST directa de SNOW, así es como va:

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola George,

Una cosa que observo en tu llamada ajax es que estableces el tipo de contenido de los datos que estás enviando. También podrías publicar el error que estás enfrentando.

jQuery.ajax({
					url:"https:localhost:4000/attachment/upload",data: oFormData,
					cache: false,
                                        enctype: 'multipart/form-data',
					contentType: false,
					processData: false,type:'POST',
					success:function(data){},
					error:function(){}

});
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?