1º Passo: Gerar URL para envio de arquivo
2º Passo: Upload do Arquivo no AWS S3
3º Passo: Salvar arquivo no cadastro
Em HTML:
<select name="doc_type_to_upload" id="doc_type_to_upload"> <option value="identificacao">Documento de Identificação RG ou CNH</option> <option value="cnpj">Identificação CNPJ - Contrato Social ou Cartão CNPJ</option> <option value="atividade">Comprovante de Atividade</option> <option value="residencia">Comprovante de Residência</option> </select> <input type="file" id="file_to_upload" name="file_to_upload" />
Em Javascript:
$(document).ready(function () { $('#file_to_upload').change(function(){ const file = document.getElementById("file_to_upload").files[0]; if(!file){ return } let body = JSON.stringify({ "filename": file.name, "content_type": file.type }); const file_size = Math.round((file.size / 1024)); if (file_size >= 4096) { alert("Arquivo muito grande, selecione um arquivo com menos de 4 MB."); return } const file_extension = file.name.split('.').pop(); if(["png","jpeg","jpg","pdf"].indexOf(file_extension) == -1){ alert("A extensão do arquivo não é permitida. Formatos válidos: PDF, JPEG e PNG."); return } let doc_type = $('#doc_type_to_upload').val(); fetch('https://demo.pagtech.com.br/api/v1/documents/generate-presigned-post/', { method: "POST", body: body, headers: { "Content-type": "application/json; charset=UTF-8" }, }).then((response) => response.json()) .then((data) => { let formData = new FormData(); for (const [key, value] of Object.entries(data['fields'])) { formData.append(key, value); } formData.append("file", document.getElementById("file_to_upload").files[0]); fetch(data['url'], { method: "POST", body: formData }) .then((data) => { let document = { 'type': doc_type, 'filename': formData.get("key") }; $.ajax({ url: 'https://demo.pagtech.com.br/api/v1/documents/save/', type: 'POST', data: document }).done(function (rs) { alert("Documento enviado com sucesso."); }).fail(function () { alert('Ocorreu um erro ao salvar o documento em nosso sistema!'); }); }) .catch(error => { console.error('Error:', error); alert("Ocorreu algum erro ao enviar o arquivo no S3.") }); }) .catch(error => { console.error('Error:', error); alert("Ocorreu algum erro ao gerar a URL do arquivo.") }); }); });