Jump to content
sergioas

Problemas em move_uploaded_file()

Recommended Posts

Boa Tarde, estou comproblemas em Post de arquivo.

 

Segue:

 

Tenho o html:

 

<form id="formularioCadastroPaciente" enctype="multipart/form-data" action="recebeArq.php" method="post">

 

<input type="file" id="arq" name="arq" class="filestyle" data-iconName="glyphicon glyphicon-inbox">

 

 

php - recebArq.php

 

$caminho = '/temp/arq';
$moveu = move_uploaded_file($_FILES['arq'],$caminho.$_FILES['arq']['name']);
if($moveu){
echo 'OK';
}
else{
echo 'NAO OK';
}

 

O erro:

 

Warning: move_uploaded_file() expects parameter 1 to be string, array given in C:\xampp\htdocs\projeto\admin\recebeArq.php on line 62
NAO OK

 

Nao estou utilizando corretamente move_uploaded_file ?

 

Share this post


Link to post
Share on other sites

show, deu certo era isso mesmo. Obrigado.

 

Mas agora eu mudei para fazer Post por Ajax/Jquery...

E nao sei como receber no meu recebArq.php o arquivo.

 

Estou fazendo dessa maneira o ajax:

 

var dados = $( form ).serialize();

$.ajax({
type: "POST",
url: "/projeto/adminPaciente/recebArq.php",
data: dados,
success: function( data )
{
alert( 'GRavou o arquivo' );
},error: function(XMLHttpRequest, textStatus, errorThrown) {

for(i in XMLHttpRequest) {
if(i!="channel")
document.write(i +" : " + XMLHttpRequest +"<br>")
}

}
});

 

Ele exibe o alert 'Gravou o arquivo', mas na verdade nao fez nada... e nem deu erro...

Share this post


Link to post
Share on other sites

Você precisa verificar qual resposta veio em

data
.

 

Experimente fazer

alert(data);
ou, melhor, aprender a usar o inspetor do navegador, que vai te dar uma resposta mais completa.

Share this post


Link to post
Share on other sites

Ok, fiz isto, e em "dados" , nao foi serializado "arq" .

 

Na verdade, eu quero fazer via ajax, para se der tudo ok, retornar um dialog informando que foi tudo OK, se nao der certo , mostrar um dialog informando que nao deu certo o Upload...

 

Se eu fizer via Form action, nao vai ter como eu retornar...

Share this post


Link to post
Share on other sites

Tenta assim

var dados = $( form ).serialize();
 
$.ajax({
    url: 'sua_url',
    type: 'post',
    data: dados,
    dataType: 'json',
    success: function(callback){
        if(callback.success){
            // Return message success 
        }else{
            // do anything
        }
    }
});

Lá no seu arquivo php que recebe os dados você codificar o resultado, por exemplo:

$myVar = ['success' => True];
echo json_encode($myVar);

Posta ai o seu arquivo php que está recebendo as informações do ajax caso não de certo.

Share this post


Link to post
Share on other sites

Evandro Oliveira:

 

Fiz sem o jquery/ajax, e estava funcionando.... mas ai quando tentei com o ajax, nao funfou mais....

 

NerdMonkey:

 

Realmente nao vai, o .php nao recebe arquivos...

 

Pesquisei, e vi este topico aqui mesmo no Forum:

http://forum.imasters.com.br/topic/391531-resolvidojquery-enviar-files-via-ajax/

 

Entao, acredito que ajax nao envia arquivos...

 

Vou ter que fazer via Form - action..e dando tudo OK, direciono via php mesmo para a mesma pagina....

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.