Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lordlexx

problema upload imagem

Recommended Posts

olã amigos do forum tudo beleza?

Estou tendo um probleminha com um formulario onde terei q enviar uma imagem mas ja no começo o negocio ja esta empacano =/.

 

esta dano o seguinte erro :

Warning: imagejpeg() [function.imagejpeg]: Unable to open '../midias//cliente=4-324fb9e518589a869b12c9a0238b174f.jpg' for writing: No such file or directory in C:\wamp\www\classifacilparaiso2.2\admin\sistema\upload.php on line 9

 

nao entendi o pq desse erro se alguem com mais experiencia possa dar uma ajudinha

 

 

vlw ajuda

 

a linha 9 do uploand.php q acusa ero e essa:

imagejpeg($nova, "$pasta/$name");

 

 

parte do codigo q pega a imagem no formulario

 

<form name="cadastraImovelCliente" action="painel.php?exe=imoveis_cliente/cadastro_2" enctype="multipart/form-data" method="post">


<label>
<span>Imagem de exibição do Imovel:</span>
<input type="file" name="img[]"  size="60"/>
</label>
<label>
<input type="submit"  name="enviar" value="Proximo Passo" />
</form>

 

codigo q pega o envio do formulario:

<?php

$imovelThumb = $_FILES['img'];
$imovelPasta = '../midias/';
$imgPermitido = array('image/jpg','image/jpeg','image/pjpg');
$contarImg = count($imovelThumb['name']);
require("sistema/upload.php");

for($i=0;$i<$contarImg;$i++){

$imagemNome = $imovelThumb['name'][$i];
$imagemCaminho = $imovelThumb['tmp_name'][$i];
$imagemTipo = $imovelThumb['type'][$i];

if(!empty($imagemNome) && in_array($imagemTipo, $imgPermitido)){
   $nome ='cliente='.$clienteId.'-'.md5(uniqid(rand(), true)).'.jpg';
   Redimensionar($imagemCaminho, $nome, 500, $imovelPasta);

}
}
?>

 

codigo do uploand.php q fala q tem um erro


<?php
function Redimensionar($tmp, $name, $largura, $pasta){
   $img = imagecreatefromjpeg($tmp);
$x = imagesx($img);
$y = imagesy($img);
$altura = ($largura*$y) / $x;
$nova = imagecreatetruecolor($largura, $altura);
imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);
imagejpeg($nova, "$pasta/$name");
       imagedestroy($img);
imagedestroy($nova);
return($name);
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não encontrou o arquivo, simples.

 

 

Arq : '../midias//cliente=4-324fb9e518589a869b12c9a0238b174f.jpg'

 

comando que travou...

 

imagejpeg($nova, "$pasta/$name");

 

verifique se ele criou o arq certinho...

debug o passo q ele salva a foto..de um echo "$pasta/$name"; exit;

 

dae veja se esta certo..e assim por diante.

Compartilhar este post


Link para o post
Compartilhar em outros sites

me parece q descobri qual problema mas nao sei como corrigir =/ o uploand so funciona qnd entro direto na pagina tipo (http://localhost/classifacilparaiso2.2/admin/imoveis-cliente/cadastro.php) qnd entro pelo link q e uma query q esta assim \/ da o erro na hora de fazer o up =/

 

<a href="painel.php?exe=imoveis-cliente/cadastro">:

 

entrano pelo link do menu aew o uploand nao funciona da o erro acima q citei aff

Warning: imagejpeg() [function.imagejpeg]: Unable to open 'fotos/cliente=76c74b057a339bcf5bbc2bcc7f54ff06.jpg' for writing: No such file or directory in C:\wamp\www\classifacilparaiso2.2\admin\imoveis-cliente\cadastro.php on line 43

 

mas entrano direto na pagina ele funciona :

 

 

pq sera q esta aconteceno este erro? alguem com mais eperiencia saberia informar?

 

vlw ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, seu erro é bem simples, você está tentando criar com as funçoes da GD

pela função que você passou, você não está mandando salvar tal foto redimensionada em algum lugar, você apenas

faz as 'alterações' na imagem passada, sacou ?

 

tente fazer assim:

$imovelThumb = $_FILES['img'];
$imovelPasta = 'midias/';
if( !is_dir( $imovelPasta ) ){
   mkdir( $imovelPasta );
}
$imgPermitido = array('image/jpg','image/jpeg','image/pjpg');
$contarImg = count( $imovelThumb['name'] );
for( $i=0; $i < $contarImg; $i++ ){

       $imagemNome = $imovelThumb['name'][$i];
       $imagemCaminho = $imovelThumb['tmp_name'][$i];
       $imagemTipo = $imovelThumb['type'][$i];

       if( !empty( $imagemNome ) && in_array( $imagemTipo, $imgPermitido ) ){
          $nome ='cliente='.$clienteId.'-'.md5( uniqid(rand(), true ) ).'.jpg';
          move_uploaded_file( $imagemCaminho, Redimensionar( $imagemCaminho, $nome, 500, $imovelPasta ) );
       }
}

 

Arrume as configurações do PATH, pois eu testei aqui, apenas ver se era algum problema

diretamente no script, ou se era algo no caminho para salvar a foto, enfim ..

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo Andrey Knupp obrigado pela ajuda vou testar a sua dica esta aconteceno o erro pq o formulario e em 3 partes nessa q e a primeira o action do formulario e a query action="painel.php?exe=imoveis_cliente/cadastro_2" aew and vai para proxima da o erro e nao funciona o up vou tentar a sua dica mais uma vez obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andrey meu amigo vlw ajuda quase deu certo mas deu um probleminha agora nao esta salvano as imagems.

E tbm tive q chamar por require o arquivo uploand.php q esta la em cima q tem a funçao Redimencionar senao dava o erro:

Fatal error: Call to undefined function Redimensionar() in C:\wamp\www\classifacilparaiso2.2\admin\imoveis-cliente\cadastro.php on line 42

 

 

fiz uma modificada e dexei so o codigo do uploand pra ficar mais facil testar me parece q agora esta certo mas agora ele nao salva o arquivo =/

 

<form name="cadastraImovelCliente" id="cadastraImovelCliente" action="" enctype="multipart/form-data" method="post">


<label>
<span>Imagem de exibição do Imovel: <strong>(Não poderá ser alterado)</strong></span>
<input type="file" name="img[]"  size="60"/>
</label>



<input type="submit"  name="enviar" value="Proximo Passo" />
</form>
<?php
require ("upload.php");
$imovelThumb = $_FILES['img'];
$imovelPasta = 'midias';
if( !is_dir( $imovelPasta ) ){
   mkdir( $imovelPasta );
}
$imgPermitido = array('image/jpg','image/jpeg','image/pjpg');
$contarImg = count( $imovelThumb['name'] );
for( $i=0; $i < $contarImg; $i++ ){

       $imagemNome = $imovelThumb['name'][$i];
       $imagemCaminho = $imovelThumb['tmp_name'][$i];
       $imagemTipo = $imovelThumb['type'][$i];

       if( !empty( $imagemNome ) && in_array( $imagemTipo, $imgPermitido ) ){
          $nome ='cliente='.md5( uniqid(rand(), true ) ).'.jpg';
          move_uploaded_file( $imagemCaminho, Redimensionar( $imagemCaminho, $nome, 500, $imovelPasta ) );
       }
}

?>

 

vlw ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andrey Knupp meu amigo brigadao pela ajuda sim adicionei o uploand.php por require esta dano certo sim o uploand show de bola vlw , so q deu um probleminha meio doido hehe ao inves dele salvar as imagems na pasta q designei ele cria uma pasta sozim em uma pasta anterior a q esta os arquivos do php mesmo teno uma pasta com o nome q designei na pasta dos arquivos e ainda ele salva a imagem tbm na pasta anterior com o tamanho original maior doidera =P pra você entender oq esta aconteceno;

 

tem na pasta adm(adm e uma pasta nela tem a pasta) =>>imoveis-cliente (nessa pasta estao os arquivos do fomrmulario,php etc q cadastrarao a imagem e o conteudo do formulario,e nela fiz a pasta onde salvara as imagens pasta "photos" mudei o nome pra testar)

 

aew oq acontece o uploand funciona so q ao inves dele salvar as imagems na pasta q esta em imoveis-cliente pasta "photos" ele salva na pasta adm numa pasta "photos" q o uploand cria sozim =P e pra complicar ele salva tbm a imagem no tamanho original na pasta adm. =/

 

espero q tenha etendido oq esta aconteceno.

 

essa parte eu nao entendi pq aconteceu isso pq sera?

 

obrigado pela ajuda

 

pra você ter uma ideia ficou assim o codigo:

<form name="cadastraImovelCliente" id="cadastraImovelCliente" action="" enctype="multipart/form-data" method="post">


<label>
<span>Imagem de exibição do Imovel: <strong>(Não poderá ser alterado)</strong></span>
<input type="file" name="img[]"  size="60"/>
</label>



<input type="submit"  name="enviar" value="Proximo Passo" />
</form>
<?php
require("upload.php");
$imovelThumb = $_FILES['img'];
$imovelPasta = 'photos';
if( !is_dir( $imovelPasta ) ){
   mkdir( $imovelPasta );
}
$imgPermitido = array('image/jpg','image/jpeg','image/pjpg');
$contarImg = count( $imovelThumb['name'] );
for( $i=0; $i < $contarImg; $i++ ){

       $imagemNome = $imovelThumb['name'][$i];
       $imagemCaminho = $imovelThumb['tmp_name'][$i];
       $imagemTipo = $imovelThumb['type'][$i];

       if( !empty( $imagemNome ) && in_array( $imagemTipo, $imgPermitido ) ){
          $nome ='cliente='.md5( uniqid(rand(), true ) ).'.jpg';
          move_uploaded_file( $imagemCaminho, Redimensionar( $imagemCaminho, $nome, 500, $imovelPasta ) );
       }
}

?>

 

o uploand.php e esse:

<?php
function Redimensionar($tmp, $name, $largura, $pasta){
   $img = imagecreatefromjpeg($tmp);
$x = imagesx($img);
$y = imagesy($img);
$altura = ($largura*$y) / $x;
$nova = imagecreatetruecolor($largura, $altura);
imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);
imagejpeg($nova, "$pasta/$name");
       imagedestroy($img);
imagedestroy($nova);
return($name);
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

É por causa do mkdir no script, apenas remova essa condição, e tudo vai correr bem conforme você deseja, creio eu ..

<form name="cadastraImovelCliente" id="cadastraImovelCliente" action="" enctype="multipart/form-data" method="post">


<label>
<span>Imagem de exibição do Imovel: <strong>(Não poderá ser alterado)</strong></span>
<input type="file" name="img[]"  size="60"/>
</label>



<input type="submit"  name="enviar" value="Proximo Passo" />
</form>
<?php
require ("upload.php");
$imovelThumb = $_FILES['img'];
$imovelPasta = 'midias';
$imgPermitido = array('image/jpg','image/jpeg','image/pjpg');
$contarImg = count( $imovelThumb['name'] );
for( $i=0; $i < $contarImg; $i++ ){

       $imagemNome = $imovelThumb['name'][$i];
       $imagemCaminho = $imovelThumb['tmp_name'][$i];
       $imagemTipo = $imovelThumb['type'][$i];

       if( !empty( $imagemNome ) && in_array( $imagemTipo, $imgPermitido ) ){
          $nome ='cliente='.md5( uniqid(rand(), true ) ).'.jpg';
          move_uploaded_file( $imagemCaminho, Redimensionar( $imagemCaminho, $nome, 500, $imovelPasta ) );
       }
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo Andrey Knupp obrigado pela ajuda mas se tirar o mkdir volta a dar o erro tudo de novo:

 

Warning: imagejpeg() [function.imagejpeg]: Unable to open 'photos/cliente=3ae9971736478ef46caac0c49d30e219.jpg' for writing: No such file or directory in C:\wamp\www\classifacilparaiso2.2\admin\imoveis-cliente\upload.php on line 9

 

aff ta muito coplicado esse negocio sera q pode ser feito mais alguma coisa pq nao sei mais oq fazer =/

 

 

 

vlw ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Excelente codigo funciona perfeitamente, só uma pergunta teria como ele reconhercer a imagem?tipo orkut exe:

se a imagem for horizontal fica 500px na horizontal se for vertical fica 500px na vertical ....

 

cara comentei que funciona mas nao tinha visto ele "duplica" a foto mesmo em outro diretório ....

tenta esse aqui depois configura de acordo com sua escolha atenção a pasta para fotos chama ( images)

 

index.php

<?php

if(isset($_POST['acao']) && $_POST['acao'] == 'cadastrar'){
$foto = $_FILES['foto'];
if($foto['type'] == 'image/jpeg'){
require("rezise.php");
$name = 'foto='.md5(uniqid(rand(), true)).".jpg";            
Redimensionar($foto, $name, 800, "images");
}   
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Redimensionar Imagem</title>
</head>

	<body>

<form method="post" action="" enctype="multipart/form-data">
<label>Foto<input type="file" name="foto" /></label>
<input type="submit" value="enviar" />
<input type="hidden" name="acao" value="cadastrar" />
</form>

	</body>

</html>

 

rezise.php

<?php

function Redimensionar($imagem, $name, $largura, $pasta){
$img = imagecreatefromjpeg($imagem['tmp_name']);
$x = imagesx($img);
$y = imagesy($img);
$altura = ($largura * $y)/$x;
$nova = imagecreatetruecolor($largura, $altura);
imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);
imagejpeg($nova, "$pasta/$name");
imagedestroy($img);
imagedestroy($nova);
return $name;
}

?>

 

Testa aí!

 

Alguem tem uma ideia de como tirar minha duvida que postei acima??

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dexter Morgan passei a usar este mesmo codigo q você sitou fiz em um sistema separado e funcionou beleza mas qnd fui testa na pagina q preciso da o mesmo erro do codigo q postei la em cima:

 

Warning: imagejpeg() [function.imagejpeg]: Unable to open 'imagems/f7e957879bb2f188693baf0671493c88.jpg' for writing: No such file or directory in C:\wamp\www\classifacilparaiso2.2\admin\imoveis-cliente\cadastro.php on line 29

 

negocio empaca q nao vai de geito nenhum to parado nesse problema a 2 semanas so funciona qnd entra direto na pagina mas qnd usa o sistema do menu q e uma query q puxa a pagina o sistema nao funciona da o erro afff =/

 

so funciona se eu esntrar direto na pagina tipo assim

localhost/classifacilparaiso2.2/admin/imoveis-cliente/cadastro.php

 

se eu usar o sistema de query string (em vermelho) para entrar na pagina nao funciona o upload agora nao sei pq disso =P

localhost/classifacilparaiso2.2/admin/painel.php?exe=imoveis-cliente/cadastro

 

testei em um sistema separado com a query e nao deu certo tbm

 

vlw ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dexter Morgan passei a usar este mesmo codigo q você sitou fiz em um sistema separado e funcionou beleza mas qnd fui testa na pagina q preciso da o mesmo erro do codigo q postei la em cima:

 

Warning: imagejpeg() [function.imagejpeg]: Unable to open 'imagems/f7e957879bb2f188693baf0671493c88.jpg' for writing: No such file or directory in C:\wamp\www\classifacilparaiso2.2\admin\imoveis-cliente\cadastro.php on line 29

 

negocio empaca q nao vai de geito nenhum to parado nesse problema a 2 semanas so funciona qnd entra direto na pagina mas qnd usa o sistema do menu q e uma query q puxa a pagina o sistema nao funciona da o erro afff =/

 

so funciona se eu esntrar direto na pagina tipo assim

localhost/classifacilparaiso2.2/admin/imoveis-cliente/cadastro.php

 

se eu usar o sistema de query string (em vermelho) para entrar na pagina nao funciona o upload agora nao sei pq disso =P

localhost/classifacilparaiso2.2/admin/painel.php?exe=imoveis-cliente/cadastro

 

testei em um sistema separado com a query e nao deu certo tbm

 

vlw ajuda

 

Vishi ai complica hein,mas percebi uma coisa as vezez nao é mas tenta aí:

 

esse funfa

localhost/classifacilparaiso2.2/admin/imoveis-cliente/cadastro.php

 

esse nao

localhost/classifacilparaiso2.2/admin/painel.php?exe=imoveis-cliente/cadastro

 

tenta colocar a extensão.php ao contrario de index ele pode nao ler só cadastro ....

 

 

localhost/classifacilparaiso2.2/admin/painel.php?exe=imoveis-cliente/cadastro.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

to com o mesmo problema.. inclusive o código é quase igual ja que buscamos na mesma fonte..

 

curso portal imobiliario da upinside..

 

na hora q subo para o servidor remoto da pau..

 

interessante é que grava no banco mas da erro ao subir pro servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.