Envio upload de imagem com Jquery + PHP sem refresh
Amigos eu gostaria de desenvolver o meu próprio script de envio de imagem, eu não quero esse sicripts prontos, pois quero ajustar as minha necessidades e design.
Porém não estou conseguindo passar para PHP a informação que vem do Input File o metodo $_POST funciona já o $_FILES sempre retorna vazio e por isso o php não faz o upload.
Lembrando que eu gostaria de enviar a imagem somente depois que clicar no botão submit.
Vejam o script, favor ajudem:
enviar.php
<?php
include('../login/config.php');
$conecta = mysql_connect(M_HOST,M_USUARIO,M_SENHA) or Data('2');
$banco = mysql_select_db(M_BD,$conecta) or Data('2');
$pasta = "img/tst/";
/* formatos de imagem permitidos */
$permitidos = array(".jpg",".jpeg",".gif",".png", ".bmp");
if(isset($_POST)){
$nome_imagem = $_FILES['fotos']['name'];
$tamanho_imagem = $_FILES['fotos']['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['fotos']['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)){
mysql_query("INSERT INTO d_dep (id,img) VALUES ('',".$nome_atual.")");
echo "<img src='img/tst/".$nome_atual."' id='previsualizar'>"; //imprime a foto na tela
}else{
echo "Falha ao enviar".mysql_error();
}
}else{
echo "A imagem deve ser de no máximo 1MB";
}
}else{
echo "Somente são aceitos arquivos do tipo Imagem";
// echo para ver o que retorna
echo $nome_imagem.$_POST['fotos'];
}
}else{
echo "Selecione uma imagem";
exit;
}
?>
index.html
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form id="form_env" method="post" action="javascript:func()">
Foto
<input type="file" id="fotos" name="fotos" />
<input type="submit" value="SALVAR" class="btn btn-gebo pull-right">
</form>
<div id="st_env"></div>
<script type="text/javascript">
$(function($) {
$("#form_env").submit(function() {
var fotos = $("#fotos").val();
$("#st_env").html("<img src='img/ajax_loader.gif' alt='Enviando' />");
$.post('enviar.php', {fotos: fotos}, function(resposta) {
$("#st_env").slideDown();
if (resposta != false) {
$("#st_env").html("resposta");
}
else {
$("#st_env").html("Imagem enviada com Sucesso");
}
});
});
});
</script>
Alguém ai consegue entender onde estou errando?
Deste já agradeço
Discussão (13)
Carregando comentários...