Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, vi alguns posts e gostaria de saber: é possivel enviar um arquivo por ajax?
Tenho o seguinte codigo:
$().ready(function(){
$("#form-serv").bind('submit', function(){
$.ajax({
type: 'POST',
url: this.action,
data: params,
...
})
return false;
});
Form:
<form action="action/cad-serv.php" method="post" id="form-serv" name="servico" enctype="multipart/form-data">...
<label>Foto: </label>
<input type="file" name="serv-foto"/>...
</form>
como eu pego a informação no php?
ja tentei por POST por FILES mas não vai alguem pode me ajudar?
Obrigado!
$().ready(function(){
$("#form-serv").bind('submit', function(){
$.ajax({
type: 'POST',
url: this.action,
data: params,
...
})
return false;
});Amigo essa função não funciona POR QUE o Ajax não pode enviar arquivos.
Somente uma simulação de Ajax que é feita com <IFRAME> que é justamente o exemplo que o JunioR-CWB passou, se você tive-se pesquisado no no site aqui mesmo veria que tem scripts prontos(até em Jquery):
você pode usar o AjaxUpload, do Jquery,
um exemplo:
/sua página .js/
/<![CDATA[/
$(document).ready(function(){
new AjaxUpload('#buttonUpload', {
action: 'upload.php',
data : {
'key1' : "This data won't",
'key2' : "be send because",
'key3' : "we will overwrite it"
},
onSubmit : function(file , ext){
alert('efetuado o submit');
},
onComplete : function(file){
alert('upload feito com sucesso!');
}
});
});/]]>/
//sua pagina de upload.php
<?php
$uploaddir = '';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "success";
} else {
echo "error";
}
?>
//sua página html
// não se esqueça de por as bibliotecas do jquery:
<!-- We will use version stealed from Google-->
<script type="text/javascript" src="../view/js/jquery.js"></script>
<script type='text/javascript' src='../view/js/sua_pagina_js.js'></script>
<script type="text/javascript" src="../view/jqueryUpload/ajaxupload.3.5.js"></script>
<a href="#anexos" ><div style="cursor:pointer" id="buttonUpload" align="right" >
upload
</div>
</a>BART REIS
Sei que a intenção foi boa mas este tópico é de 2008
Se deseja realmente ajudar o fórum responda em tópicos recentes onde os usuários ainda precisam da resposta
via ajax puro (xmlhttprequest) não rola.
Veja este script, muito bom por sinal, emula um "ajax":
http://www.webtoolkit.info/ajax-file-upload.html