POST no AJAX
Olá pessoal...
meu problema é o seguinte...
Sou iniciante no Ajax... mas até q tenho me virado bem...
Mas tudo que fiz até aqui usei o método GET na hora de chamar a função Open.
Mas agora me deparei com um problema:
A idéia é que o usuário enviei uma foto para o servidor... sendo assim tenho dois arquivos, um chama-se be_cadastro02.php e outro be_grava_cad02.php
Quando o internauta entra na página cai direto no arquivo be_cadastro02.php onde há um campo File_field para que ele possa clicar em "Procurar" e indicar a imagem que ele quer enviar.
Sem usar o método Ajax o sistema estava funcionando bem!... pq eu enviava as informações do be_cadastro02.php ao be_grava_cad02.php utilizando o método POST do FORM com um submit... e via PHP eu fazia o PUT usando FTP no segundo arquivo.... sem problemas!
O problema surgiu quando coloquei o ajax na parada!
No be_grava_cad02.php (q é o arquivo q vai enviar a foto para o servidor) eu preciso receber essas informações:
$arqLocal = $_FILES[campo_upload][name];
$arqRemoto = $_FILES[campo_upload][tmp_name];
O problema é q não sei como passa-las via Ajax....
Será que alguém pode me ajudar?!
Segue meus códigos:
be_cadastro02.php:
function envia(var_cod){
MM_showHideLayers('LStatus','','show');
var xmlHttp;
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else if (window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
xmlHttp.open("GET", "[http://www.micropinhal.com.br/balcao_empregos/cad_online/be_gravar_cad02.php?codigo="](http://www.micropinhal.com.br/balcao_empregos/cad_online/be_gravar_cad02.php?codigo=) + var_cod, true);
xmlHttp.onreadystatechange = callback;
xmlHttp.send(null);
function callback(){
if(xmlHttp.readyState == 1){
LStatus.style.top = document.body.scrollTop;
LStatus.style.left = (window.screen.availWidth-260);
MM_setTextOfLayer('LStatus','','<center><font face="arial" size=2><B>Enviando Imagem...<B></font></center>')
}
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
if(xmlHttp.responseXML){
var dataArray = xmlHttp.responseXML.getElementsByTagName("status");
var vitem = dataArray[0];
var vresultado = vitem.getElementsByTagName("result")[0].firstChild.nodeValue;
if (vresultado == "OK"){
MM_setTextOfLayer('LStatus','','<center><font face="arial" size=2><B>Gravado!<BR>Clique no link "Avançar para a próxima fase (Escolaridade)" <BR> ou escolha outra imagem...<B></font></center>');
}else if (vresultado == "nao_jpg") {
MM_setTextOfLayer('LStatus','','<center><font face="arial" size=2><B>ERRO - O arquivo não é uma imagem JPG válida! <BR> Escolha outra imagem.<B></font></center>');
}else if (vresultado == "nao_escolheu_imagem") {
MM_setTextOfLayer('LStatus','','<center><font face="arial" size=2><B>ERRO - Você não escolheu a imagem! <BR> Escolha uma imagem por favor.<B></font></center>');
}
}
} else if (xmlHttp.status == 404){
alert("Erro ao gravar dados!");
}
} // IF readyState == 4
}//FUNCTION CALLBACK
}
be_grava_cad02.php:
<?
session_start();
if(empty($_SESSION["cod_candidato"])) {
$_SESSION["cod_candidato"] = $_GET["codigo"];
}
echo("Código = " . $_SESSION["cod_candidato"]);
//---------------------------------- INÍCIO DA CONEXÃO COM BANCO DE DADOS-----------------------------------------
//conexao com o banco
$conexao = mysql_connect('mysql1.micropinhal.com.br','xxx','yyy');
//seleciona o banco
$banco = mysql_select_db('micropinhal',$conexao);
//---------------------------------- FIM DA CONEXÃO COM BANCO DE DADOS-----------------------------------------
//---------------------------------- INÍCIO DA CONEXÃO FTP--------------------------------------------
//DADOS PARA CONEXÃO
$server = "www.micropinhal.com.br";
$user = "xxx";
$pass = "yyy";
//CONECTA AO FTP
$con = ftp_connect($server)
or die ("ERRO AO CONECTAR AO SERVIDOR DE FTP ".$server);
//TENTA EFETUAR O LOGIN COM USUÁRIO E SENHA DE ACESSO
if(@!ftp_login ($con, $user, $pass) ) {
echo "Não foi possível efetuar a conexão. Verifique o usuário e a senha de acesso.";
}
$troca_dir = ftp_chdir($con, "www/balcao_empregos/cad_online/fotos");
if(!$troca_dir){
echo("Erro ao acessar pasta!");
}//---------------------------------- FIM DA CONEXÃO FTP--------------------------------------------
//ROTINA PARA UPLOAD----------------------------------------------------------------------------------------------------
if ($_FILES[campo_upload][name] <> "") {
//Pega a extenção do arquivo
$ext = explode(".",$_FILES[campo_upload][name]);
if(($ext[1] == "jpg") or ($ext[1] == "JPG")){
//RECEBE O ARQUIVO
$arqLocal = $_FILES[campo_upload][name];
$arqRemoto = $_FILES[campo_upload][tmp_name];
//DEFINE O NOME DA FOTO REDIMENSIONADA
$nome_foto = "img_cod" . $_SESSION["cod_candidato"] . ".jpg";
//ALIMENTA UM ARRAY COM OS NOMES DOS ARQUIVOS DESTA PASTA.
$arr_arq = ftp_nlist($con, "");
if($arr_arq == false){
//SE RESULTAR EM FALSE É PQ A PASTA ESTÁ FAZIA
//SE A PASTA ESTÁ VAZIA NÃO HÁ O RISCO DE JÁ EXISTIR UM ARQUIVO COM O MESMO NOME.
ftp_put($con, ftp_pwd($con) . "/" . $arqLocal, $arqRemoto, FTP_BINARY);
$arr_arq = ftp_nlist($con, "");
//ATUALIZA TABELA
$sql = mysql_query("UPDATE be_candidatos_online SET foto = '$nome_foto' WHERE codigo = '$_SESSION[cod_candidato]'");
$erro = 0;
} else {
//SE A PASTA NÃO ESTIVER VAZIA...
if (array_search($arqLocal, $arr_arq) == false){
//PESQUISA SE HÁ ALGUM ARQUIVO COM O MESMO NOME DO ARQUIVO A SER POSTADO.
// SE DER FALSE, É PORQUE NÃO HÁ NENHUM ARQUIVO COM ESSE NOME.
ftp_put($con, ftp_pwd($con) . "/" . $arqLocal, $arqRemoto, FTP_BINARY);
$arr_arq = ftp_nlist($con, "");
//ATUALIZA TABELA
$sql = mysql_query("UPDATE be_candidatos_online SET foto = '$nome_foto' WHERE codigo = '$_SESSION[cod_candidato]'");
$erro = 0;
} else {
//SE NÃO DER FALSE, É PORQUE JÁ EXISTE UM ARQUIVO COM ESSE NOME.
$erro = 1;
}
}
if ($erro == 0){ //SE O ARQUIVO FOI ENVIADO
echo("www/balcao_empregos/cad_online/fotos/" . $arqLocal);
ftp_rename ( $con, $arqLocal , $nome_foto );
$conteudo = '<?xml version="1.0" encoding="ISO-8859-1"?>';
$conteudo .= "\n";
$conteudo .= "\n";
$conteudo .= "<xml_status>";
$conteudo .= "\n";
$conteudo .= "<status>";
$conteudo .= "\n";
$conteudo .= "<result>OK</result>"."\n";
$conteudo .= "\n";
$conteudo .= "</status>";
$conteudo .= "\n";
$conteudo .= "</xml_status>";
$conteudo .= "\n";
//CABEÇALHO
Header("Content-type: application/xml; charset=iso-8859-1");
echo($conteudo);
}//FECHA IF DA VERIFICAÇÃO SE O ARQUIVO FOI ENVIADO
} else {
$conteudo = '<?xml version="1.0" encoding="ISO-8859-1"?>';
$conteudo .= "\n";
$conteudo .= "\n";
$conteudo .= "<xml_status>";
$conteudo .= "\n";
$conteudo .= "<status>";
$conteudo .= "\n";
$conteudo .= "<result>nao_jpg</result>"."\n";
$conteudo .= "\n";
$conteudo .= "</status>";
$conteudo .= "\n";
$conteudo .= "</xml_status>";
$conteudo .= "\n";
//CABEÇALHO
Header("Content-type: application/xml; charset=iso-8859-1");
echo($conteudo);
}//FIM DO IF DE EXTENÇÃO DO ARQUIVO
} else {
$conteudo = '<?xml version="1.0" encoding="ISO-8859-1"?>';
$conteudo .= "\n";
$conteudo .= "\n";
$conteudo .= "<xml_status>";
$conteudo .= "\n";
$conteudo .= "<status>";
$conteudo .= "\n";
$conteudo .= "<result>nao_escolheu_imagem</result>"."\n";
$conteudo .= "\n";
$conteudo .= "</status>";
$conteudo .= "\n";
$conteudo .= "</xml_status>";
$conteudo .= "\n";
//CABEÇALHO
Header("Content-type: application/xml; charset=iso-8859-1");
echo($conteudo);
}//FIM - ROTINA PARA UPLOAD-----------------------------------------------------------------------------------------------
?>
Discussão (2)
Carregando comentários...