Como fazer upload de arquivos por AJAX utilizando a biblioteca jQuery e PHP.
O upload de arquivos por AJAX não é compatível com navegadores antigos, devido a utilização de APIs desenvolvidas recentemente.
Montando o formulário
Repare que no “action” do formulário está o arquivo PHP que irá receber e processar o arquivo que será enviado.
<form name="meuForm" action="upload_arquivo.php"> Arquivo<br> <input type="file" name="meuArquivo" id="meuArquivo" /> <input type="button" onclick="upload();" name="Upload" /> </form>
Esse é um exemplo bem simples, obviamente tem vários detalhes que podem e devem ser melhorados!
Upload de arquivos por AJAX – jQuery
A principal função utilizada para o envio.
Obs. Não se esqueça de carregar a biblioteca jQuery antes do código abaixo, você pode carregar o jQuery diretamente do CDN da Google, otimizando o seu site: https://developers.google.com/speed/libraries/.
<script> function upload(){ var data = new FormData(); data.append('file', document.getElementById('file').files[0]); $.ajax({ url : $("form[name='meuForm']").attr("action"), type : 'POST', data : data, processData: false, contentType: false, success : function(data) { /* Retorno do PHP */ console.log(data); alert(data); } }); } </script>
PHP
No arquivo upload_arquivo.php utilize o seguinte código:
if (isset($_FILES['meuArquivo']) && !empty($_FILES['meuArquivo']['name'])) { /*Arquivo está sendo enviado para pasta UPLOAD */ $move_upload_rs = move_uploaded_file($_FILES['file']['tmp_name'], "upload/" . $_FILES['meuArquivo']['name']); if($move_upload_rs){ die("ok"); }else{ die("error"); } } else { die("error"); }
É importante que o código acima seja complementado com as seguintes mensagem de erro: http://php.net/manual/pt_BR/features.file-upload.errors.php


2 comentários sobre “Upload de arquivos por AJAX com PHP e jQuery”