Upload de fotos
Boa tarde galera, tudo bem?
Preciso da ajuda para fazer um upload de fotos, eu pesquisei batente e descobri metodos para tal, mas tenho algumas duvidas e queria adaptar de alguma forma ao projeto que ja tenho.
Eu já tenho uma tela bem grande, funcionando 100% onde o meu submit é feito através de ajax. Para isso eu tenho um form para todo conteúdo da pagina e um form para o input da imagem, desta forma:
Pagina:
<form method="post" id="frm_evento_logotipo" name="frm_evento_logotipo" enctype="multipart/form-data" action="../../uteis/UploadFoto.php">
<input type="file" value="Carregar" name="evento_logotipo" id="evento_logotipo"/>
</form>
JavaScript:
function salva() {
var frm = $('#evento');
var dataString = frm.serialize();
$.ajax({
type: "POST",
url: "../../ajaxService/EventoAjaxService.php",
data: "action=salvarEvento&" + dataString,
dataType: 'json',
async: true,
success: function(ret) {
var idEvento = ret;
if(idEvento > 0){
uploadFoto();
} else {
alert("Erro ao salvar evento!");
}
}
});
}
function uploadFoto(){
document.frm_evento_logotipo.submit();
}
UploadFoto.php:
<? ini_set('default_charset','UTF-8');
$pasta = $_SERVER['DOCUMENT_ROOT']."/ArrozDeFesta/fotos/";
/* formatos de imagem permitidos */
$permitidos = array(".jpg",".jpeg",".gif",".png", ".bmp");
if(isset($_POST)){
$nome_imagem = $_FILES['evento_logotipo']['name'];
$tamanho_imagem = $_FILES['evento_logotipo']['size'];
/* pega a extensão do arquivo */
$ext = strtolower(strrchr($nome_imagem,"."));
/* verifica se a extensão está entre as extensões permitidas */
if(in_array($ext,$permitidos)){
/* converte o tamanho para KB */
$tamanho = round($tamanho_imagem / 1024);
if($tamanho < 1024){ //se imagem for até 1MB envia
$nome_atual = md5(uniqid(time())).$ext; //nome que dará a imagem
$tmp = $_FILES['imagem']['tmp_name']; //caminho temporário da imagem
/* se enviar a foto, insere o nome da foto no banco de dados */
if(move_uploaded_file($tmp,$pasta.$nome_atual)){
echo $pasta;
echo $nome_atual;
}else{
echo "Falha ao enviar";
}
}else{
echo "A imagem deve ser de no máximo 1MB";
}
}else{
echo "Somente são aceitos arquivos do tipo Imagem";
}
}else{
echo "Selecione uma imagem";
exit;
}
?>
O que acontece é que no retorno do meu ajax eu dou um submit no form da minha foto, então eu perco a tela atual pois ele carrega o UploadFoto.php.
Minhas duvidas são as seguintes:
1) Existe como eu fazer o submit da foto da mesma forma que faço o submit de toda minha tela, ou seja via ajax?? Eu não queria perder o estado da minha tela apos salvar, dessa que eu fiz eu perco.
2) No meu UploadFoto.php quando chega na hora de mover o arquivo ele da erro, mas nao tenho o erro específico. Eu ja conferi a permissão das pastas e o array $_FILE e esta tudo certo, fora isso tem algo q eu precise me atentar?
Desde ja agradeço
Discussão (8)
Carregando comentários...