¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como enviar arquivos anexos através de uma API REST no SAP UI5 com AJAX POST

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

Olá Especialistas,

Tenho uma API REST (chamada POST) para enviar arquivos anexos e estou tentando criar um Diálogo/Aplicação SAP UI5 para enviar o arquivo anexo através de uma chamada AJAX POST.

Preciso dos Dados do Formulário como

  • table_name: abc
  • table_sys_id: 123
  • file: (binário)

Também preciso passar a autenticação para a URL principal.

Qual é a maneira correta de proceder? Tenho tentado várias opções disponíveis e não tive sorte.

Um dos enfoques que tentei, mas está incorreto

<l:VerticalLayout><u:FileUploader
			id="fileUploader"name="myFileUpload"
			tooltip="Faça o upload do seu arquivo para o servidor local"
			placeholder="Escolha um arquivo para enviar..."></u:FileUploader><Button
			text="Enviar Arquivo"
			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á resolvido:

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...

Olá wasnik ,

O que estou tentando alcançar é anexar um arquivo a um incidente no 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 () {
		}
	});
}

Estou recebendo um erro HTTP 400

Ao tentar a API REST direta do SNOW, é assim que vai:

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

Olá George,

Uma coisa que observo na sua chamada ajax é que você define o tipo de conteúdo dos dados que está enviando. Você também poderia mencionar o erro que está 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?