Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde.
Tenho um formulario para envio de multiplas imagens e estou com um problema nele.
Algumas imagens estão sendo inseridas e outras não.
Não sei se é o time out ou o limite de tamanho dos arquivos
Em meu php.ini tenho os seguintes códigos:
post_max_size = 500M
upload_max_filesize = 500M
max_execution_time = 1000
max_input_time = 1000
Gostaria de saber se tenho que alterar algo ou inserir algo para que de certo
Observação: Esse erro ocorre mais quando a internet é lenta e não da erro algum. Insere os dados no banco mas a imagem não é inserida na pasta
Faço o upload dele por um formulario, redimensiono e salvo na pasta e o caminho no banco
Segue o código abaixo
$foto = $_FILES['foto'];
list($largura1, $altura1) = getimagesize($foto['tmp_name'][$i]);
if( ($largura1>700) || ($altura1>700) ){
if ($largura1 > $altura1){
$porcentagem1 = (700 / $largura1);
}
else{
$porcentagem1 = ( 700 / $altura1);
}
}
else{
$porcentagem1 = 1;
}
$novalargura1 = round($largura1 * $porcentagem1);
$novaaltura1 = round($altura1 * $porcentagem1);
$upload1x = imagecreatetruecolor($novalargura1, $novaaltura1);
$upload1y = imagecreatefromjpeg($foto['tmp_name'][$i]);
imagecopyresampled($upload1x, $upload1y, 0, 0, 0, 0, $novalargura1, $novaaltura1, $largura1, $altura1);
imagejpeg($upload1x, "../fotos_imoveis/{$imovelID}_{$i}.jpg");
$foto = "../fotos_imoveis/{$imovelID}_{$i}.jpg";
$sql_foto = "INSERT INTO imovel_foto
(imovel_imovelID, foto)
VALUES ('$imovelID', '$foto')";
$sql_foto = mysql_query($sql_foto) or die ("Erro-foto.");
}
Fora isso e o que tem no php.ini, não tenho mais nada.
Agradeço desde já
Verifique se o índice
$foto['error'][$i]
Vem com algum valor antes de continuar.
Sugestão, use ImageMagickao invés de GD.
Mais rápida, mais fácil e usa menos memória.
Ela trabalha com arquivos gigantes como se fossem folhas de seda, de tão leve que fica o processo.
Voce quer que coloque onde esse código
E quer que de um echo nesse comando também para ver o que aparece?
Então man!
Vc pode usar o WideImage ele é bem simples de se implementar.
Pode ser uma resposta besta, mas na pasta tem permissão para gravar?
Abraço!
Tem permissão sim.
Arquivos pequenos estão sendo gravados normalmente.
Apenas quando envio uma imagem de 12mb por exemplo que não grava.
Alias, grava apenas o id e mais informação nenhuma que envio no formulario.
Como se perdesse todas as informações
Crie um script só com isto:
echo '<pre>'; print_r($_FILES);Quando mando uma foto pequena ele mostra
Array( [foto] => Array ( [name] => Array ( [0] => Pôr-do-sol.jpg ) [type] => Array ( [0] => image/jpeg ) [tmp_name] => Array ( [0] => /tmp/phpdKDSBD ) [error] => Array ( [0] => 0 ) [size] => Array ( [0] => 71189 ) ))
quando envio a foto grande ele da (11MB por exemplo)
Array()
Crie um arquivo só com isto:
<?php phpinfo();
E veja os valores dos itens:
upload_max_filesize
post_max_size
Além de (obviamente) você enviar a parte do seu código que está com problema, algumas perguntas que podem lhe auxiliar a encontrar o problema e saná-lo: