Ir para conteúdo

POWERED BY:

Arquivado

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

junior.c.e

Upload com php

Recommended Posts

Fala galera bele?

 

Bom mais uma vez vim pedir ajuda.

É o seguinte estou terminando de criar um sisteminha, onde nele tem um campo de UPLOAD de imagems, este feito em flash e PHP,mas agora tenho criar algumas regras para o PHP o problema é que ñ entendo nada de PHP.

Vamos la, no flash esta da seguinte forma....

 

// Cod que se integra com PHP para fazer o UPLOAD//

stop(); 
var allTypes = new Array(); 
allTypes.push(); 
var listener = new Object(); 
listener.onSelect = function (file) 
{ 
       done.text = "Arquivo Selecionado"; 
   filename_txt.text = file.name; 
}; 
listener.onCancel = function (file) 
{ 
   done.text = "Cancelado"; 
}; 
listener.onOpen = function (file) 
{ 
   done.text = "Enviando: " + file.name; 
}; 
listener.onProgress = function (file, bytesLoaded, bytesTotal) 
{ 
   progress.mode = "manual"; 
   progress.setProgress(bytesLoaded, bytesTotal); 
}; 
listener.onComplete = function (file) 
{ 
   done.text = "Arquivo " + file.name + " upload completo!"; 
}; 
listener.onHTTPError = function (file, httpError) 
{ 
   done.text = "Erro de HTTP :" + httpError; 
}; 
listener.onIOError = function (file) 
{ 
   done.text = "IO Erro"; 
}; 
listener.onSecurityError = function (file, errorString) 
{ 
   (done.text = "Erro de Segurança: " + file.name + " ErrorString: " + errorString); 
   "Erro"; 
}; 
var fileRef = new flash.net.FileReference(); 
fileRef.addListener(listener); 
vai.clickHandler=function(){ 
       upload.enabled = true; 
fileRef.browse(); 
} 
upload.clickHandler = function () 
{ 
   this.enabled = false; 
   fileRef.upload("http://localhost/upload/upload.php"); 
}; 
_global.style.setStyle("themeColor", "0x0099FF")

//________________________________________________________________________________//

 

No PHP esta assim...

 

<?PHP 


ini_set('post_max_size', '50M'); 

ini_set('upload_max_filesize', '50M'); 



$target_path = "uploads/"; 

$target_path = $target_path . basename( $_FILES['Filedata']['name']);  



if(move_uploaded_file($_FILES['Filedata']['tmp_name'], $target_path))  

{ 

    echo "O arquivo ". basename( $_FILES['Filedata']['name']). " foi enviado com sucesso"; 

}  

else 

{ 

    echo "Ocorreu um erro ao tentar enviar, tente novamente!"; 

} 


?>

 

//_________________________________________________________________________//

 

Galera o que preciso é que o PHP ao fazer UPLOAD renomeie a imagem tipo LOGO1, LOGO2, LOGO3, etc. Porem ao renomear a imagem caso ja tenha um nome repetido renomeia para um a mais, ex se a ultima for logo1 entao renomeia para logo2.

Tambem preciso que ele defina o tamanho X widht para 150 no maximo...

Galera se alguem entender de PHP da esta forma por favor.

 

Abraço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

SÓ isso? heuhuheuhe

para verificar se a imagem existe, utilize o file_exists

 

e para redimensionar a imagem, script no fórum é o que mais tem...

vou te mostrar um que vi no php.net/imagecreatefromjpeg

 

utilize, teste, altere, pesquise, só assim vai aprender alguma linguagem de programação

 


function resize($img, $thumb_width, $newfilename) 
{ 
 $max_width=$thumb_width;

   //Check if GD extension is loaded
   if (!extension_loaded('gd') && !extension_loaded('gd2')) 
   {
       trigger_error("GD is not loaded", E_USER_WARNING);
       return false;
   }

   //Get Image size info
   list($width_orig, $height_orig, $image_type) = getimagesize($img);

   switch ($image_type) 
   {
       case 1: $im = imagecreatefromgif($img); break;
       case 2: $im = imagecreatefromjpeg($img);  break;
       case 3: $im = imagecreatefrompng($img); break;
       default:  trigger_error('Unsupported filetype!', E_USER_WARNING);  break;
   }

   /*** calculate the aspect ratio ***/
   $aspect_ratio = (float) $height_orig / $width_orig;

   /*** calulate the thumbnail width based on the height ***/
   $thumb_height = round($thumb_width * $aspect_ratio);


   while($thumb_height>$max_width)
   {
       $thumb_width-=10;
       $thumb_height = round($thumb_width * $aspect_ratio);
   }

   $newImg = imagecreatetruecolor($thumb_width, $thumb_height);

   /* Check if this image is PNG or GIF, then set if Transparent*/  
   if(($image_type == 1) OR ($image_type==3))
   {
       imagealphablending($newImg, false);
       imagesavealpha($newImg,true);
       $transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);
       imagefilledrectangle($newImg, 0, 0, $thumb_width, $thumb_height, $transparent);
   }
   imagecopyresampled($newImg, $im, 0, 0, 0, 0, $thumb_width, $thumb_height, $width_orig, $height_orig);

   //Generate the file, and rename it to $newfilename
   switch ($image_type) 
   {
       case 1: imagegif($newImg,$newfilename); break;
       case 2: imagejpeg($newImg,$newfilename);  break;
       case 3: imagepng($newImg,$newfilename); break;
       default:  trigger_error('Failed resize image!', E_USER_WARNING);  break;
   }

   return $newfilename;
}

echo resize("test4.png", 120, "thumb_test4.png") 

 

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Crucifier, bele?

 

Bom de ante mão obrigado pela atenção...

É o seguinte conforme eu tinha explicado no começo do post não entendo nada de PHP,programo apenas em action 2.0 e isso faz com que eu não saiba usar o script que você me passou, ainda pior a parte do PHP que já estou usando esta funcionando perfeitamente com o flash e o que preciso é que este mesmo cod renomeie a imagem do upload...

Como eu poderia usar este scrip que você me passou no script que já tenho e se integra com o flash? Seria possivel?

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Crucifier, bele?

 

Bom de ante mão obrigado pela atenção...

É o seguinte conforme eu tinha explicado no começo do post não entendo nada de PHP,programo apenas em action 2.0 e isso faz com que eu não saiba usar o script que você me passou, ainda pior a parte do PHP que já estou usando esta funcionando perfeitamente com o flash e o que preciso é que este mesmo cod renomeie a imagem do upload...

Como eu poderia usar este scrip que você me passou no script que já tenho e se integra com o flash? Seria possivel?

 

Abraços.

 

Coloca essa função num arquivo php e no começo desse seu script coloca include("nomedoarquivo.php");

Ou então colocar a função no seu script, só que vai ficar meio grande

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Daniel, tranquilo?

 

Então testei da forma que você me passou e ñ deu certo,o flash exibe um erro de (ERRO HTTP:500), nao sei oque esta errado voce pode me ajudar?

 

Veja como eu fiz...

 

[/code]

//_________________________________________________________________________________________//

 

<?PHP

include("nomedoarquivo.php");

 

ini_set('post_max_size', '50M');

 

ini_set('upload_max_filesize', '50M');

 

 

 

$target_path = "uploads/";

 

$target_path = $target_path . basename( $_FILES['Filedata']['name']);

 

 

 

if(move_uploaded_file($_FILES['Filedata']['tmp_name'], $target_path))

 

{

 

echo "O arquivo ". basename( $_FILES['Filedata']['name']). " foi enviado com sucesso";

 

}

 

else

 

{

 

echo "Ocorreu um erro ao tentar enviar, tente novamente!";

 

}

 

 

?>

 

//______________________________________________________________________________________

 

Tambem fiz assim:

 

<?PHP

 

 

ini_set('post_max_size', '50M');

 

ini_set('upload_max_filesize', '50M');

 

 

 

$target_path = "uploads/";

 

$target_path = $target_path . basename( $_FILES['Filedata']['name']);

 

 

 

if(move_uploaded_file($_FILES['Filedata']['tmp_name'], $target_path))

 

{

 

echo "O arquivo ". basename( $_FILES['Filedata']['name']). " foi enviado com sucesso";

 

}

 

else

 

{

 

echo "Ocorreu um erro ao tentar enviar, tente novamente!";

 

}

 

 

?>

function resize($img, $thumb_width, $newfilename)

{

$max_width=$thumb_width;

 

//Check if GD extension is loaded

if (!extension_loaded('gd') && !extension_loaded('gd2'))

{

trigger_error("GD is not loaded", E_USER_WARNING);

return false;

}

 

//Get Image size info

list($width_orig, $height_orig, $image_type) = getimagesize($img);

 

switch ($image_type)

{

case 1: $im = imagecreatefromgif($img); break;

case 2: $im = imagecreatefromjpeg($img); break;

case 3: $im = imagecreatefrompng($img); break;

default: trigger_error('Unsupported filetype!', E_USER_WARNING); break;

}

 

/*** calculate the aspect ratio ***/

$aspect_ratio = (float) $height_orig / $width_orig;

 

/*** calulate the thumbnail width based on the height ***/

$thumb_height = round($thumb_width * $aspect_ratio);

 

 

while($thumb_height>$max_width)

{

$thumb_width-=10;

$thumb_height = round($thumb_width * $aspect_ratio);

}

 

$newImg = imagecreatetruecolor($thumb_width, $thumb_height);

 

/* Check if this image is PNG or GIF, then set if Transparent*/

if(($image_type == 1) OR ($image_type==3))

{

imagealphablending($newImg, false);

imagesavealpha($newImg,true);

$transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);

imagefilledrectangle($newImg, 0, 0, $thumb_width, $thumb_height, $transparent);

}

imagecopyresampled($newImg, $im, 0, 0, 0, 0, $thumb_width, $thumb_height, $width_orig, $height_orig);

 

//Generate the file, and rename it to $newfilename

switch ($image_type)

{

case 1: imagegif($newImg,$newfilename); break;

case 2: imagejpeg($newImg,$newfilename); break;

case 3: imagepng($newImg,$newfilename); break;

default: trigger_error('Failed resize image!', E_USER_WARNING); break;

}

 

return $newfilename;

}

 

echo resize("test4.png", 120, "thumb_test4.png")

 

//_____________________________________________________________________________

[/code]

 

 

Esta dando o msm erro, pode me dar um a dica oque eu fiz de errado?

 

Valeu abraço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim funcionava perfeitamente...

 

Quando eu tiro o complemento funciona normal.

 

Este sisteminha de upload em flash esta dentro projeto em flash que fiz, onde o usuario pode importar uma imagem para dentro da animação, porem para o flash receber esta imagem é necessario que eu diga o nome da img ex: logo1, logo2, logo3, etc. Ele esta funcionando normal,porem necessito que a parte em PHP renomeia a imagem,assim quando esta imagem for importada o flash reconhece pelo nome...

 

Galera se alguem mais entender de PHP da esta força estou precisando muito para concluir um projeto.

 

O erro que esta dando é ERRO HTTP:500

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para renomear utilize rename(), o php ta dando algum erro? Coloca error_reporting(E_ALL); para exibir os erros

 

 

Quando eu tiro o complemento funciona normal.
Como assim complemento?

O php ta fazendo upload?

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Daniel, tranquilo?

Bom vou tentar explicar melhor.

Quando digo complemento me refiro ao script que o membro Crucifier postou, script este que você me explicou como usar, onde eu coloque fora do cod que eu ja tinha e não deu certo e tambem coloquei dentro do meu cod e tambem não funciona dando o ERRO: HTTP500 este erro aparece dentro do flash, no topo dente post esta tambem o action usando no flash que mostra em que situação este erro deve aparecer.

As imagens que sao updas nao serão publicadas somente armazenadas dentro de uma determinada pasta em meu servidor, quem ira buscar estas imagens sera o flash, onde esta o seguinte comando para busca as img logo1.loadMovie("logo1.png"),logo2.loadMovie("logo2.png"),logo3.loadMovie("logo3.png"), isso vai ate a logo de n°20, de forma que so podera ser feito upload de 20 logo, e por isso que preciso que o PHP que armazena estas imagens renomei para sequencia de logo1.png, logo2.png, logo3.png que vai no maxino ate a logo20.png.

Caso esta imagem nao seja renomeada para um numero dentro denta sequencia quando o usuario clicar na animação minha logo marca no flash não ira mostrar sua logo, pois nao foi renomeada dentro da sequencia acima. Hoje quando o usuario clica em importar logo marca ele deve renomear sua logo para qualquer nome que esteja detro da sequencia logo1.png, logo2.png, logo3.png caso contrario não vai exibir na animação do flash.

 

Abraços Daniel e obrigado pelas ajudas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

$target_path = "uploads/";

 

$target_path = $target_path . basename( $_FILES['Filedata']['name']);

 

substitui

basename( $_FILES['Filedata']['name']) pelo nome do arquivo que você quer

Compartilhar este post


Link para o post
Compartilhar em outros sites

Daniel vou testar alterando o nome,

se nao for pedir muito como faço para determinar o tamanho maximo da imagem, ou fazer com que o php ajuste de forma automatica ma medida programada, e ultima duvida, onde eu vou substituir o cod pelo nome e se este nome for logo1.png e o usuario fazer upload de uma imagem .jpg ao fazer upload ja convert para phg ou nao?

 

Abraço e valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Daniel fiz o texte e em parte deu certo, quando faço o upload ele renomeia a imagem, porem a estenção fica errada de forma que o flash não a reconhece, ou seja, onde voce disse que era p/ substituir pelo nome que eu queria coloque (teste.png)quando faço o upload o vou ver se deu certo esta "testepng) ele esta eliminando o ponto.

Sera que tem como resolver isso?

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem algumas classes que alteram o tamanho da imagem tem o script que o amigo ai de cima postou , e tem o canvas e varios tutoriais. Nao esquece de ver as permissoes no ftp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Daniel fiz o texte e em parte deu certo, quando faço o upload ele renomeia a imagem, porem a estenção fica errada de forma que o flash não a reconhece, ou seja, onde voce disse que era p/ substituir pelo nome que eu queria coloque (teste.png)quando faço o upload o vou ver se deu certo esta "testepng) ele esta eliminando o ponto.

Sera que tem como resolver isso?

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na bliblioteca gd tem essas funções:

Eu acho que isso converte,

Ainda não sei mas como está seu script?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Daniel não sei como usar a galeria GD alem de que eu uso um servidor destes pagos, sendo assim não tenho acesso a galeria GD.

Abaixo esta o script que estou usando e com a alteração que você me passou.

 

<?PHP  


ini_set('post_max_size', '50M');  

ini_set('upload_max_filesize', '50M');  



$target_path = "uploads/";  

$target_path = $target_path . basename(logo1.png//Aqui foi onde eu alterei//);   



if(move_uploaded_file($_FILES['Filedata']['tmp_name'], $target_path))   

{  

    echo "O arquivo ". basename( $_FILES['Filedata']['name']). " foi enviado com sucesso";  

}   

else  

{  

    echo "Ocorreu um erro ao tentar enviar, tente novamente!";  

}  


?>

 

Eu fiz algo de errado, se você puder me ajudar com o nome ja vai ser muito bom, com relação ao tamanho deixa para la.

 

Abrigado abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

$target_path = $target_path . basename(logo1.png//Aqui foi onde eu alterei//);

Você colocu logo1.png ao invéz de uma string, devia dar algum erro, ficaria "logo1.png"

 

Eu acho que não precisa usar essa função basename, já que você vai dar um novo nome a imagem.

 

Ai ficaria

$target_path = $target_path . 'logo1.png';

 

 

Tem certeza que não tem o GD, já viu o phpinfo()?

 

Cria um arquivo e coloca <?php phpinfo(); ?> e ve se ta "enabled"

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Daniel este servidor não da acesso a GD, pois como eu havia dito é destes pago de só dão o espaço e o banco em SQL, a GD deve ter sim porque eu uso uma função noflash que salva tudo que o o usuario fez, e esta função trabalha com php para transformar em imagem as alterações do usuario. Quando fui usar esta função salvar estava especificado que seria necessario ter a GD instalada, mas eu acho que isso nao é manipulaveu ja que nem mostra no painel de controle do servidor que uso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho que tem como carregar a bliblioteca gd pela função dl

 

dl(php_gd2.dll);

Ai você faz um upload no seu servidor da bliblioteca gd(eu acho que é php_gd2.dll)

Eu não sei se funciona, acho que sim, tenta ae. Espero que essa função não esteje desabilitada também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

:joia: :clap: :D

 

Daniel oque eu queria deu certo, fiz oque você disse coloquei "logo1.png" ao invez de logo1.png com "" deu certinho, quando faço upload de uma imagem seja .png, .jpg ou .jpeg ele renomeia para logo1.png independente da extenção. Bom se eu conseguir agora que o tamanho depois de feito upload seja de no maximo 150x150 pixel seria demais, pois ficaria perfeito.

Por este script que estou usando é possivel fazer?

 

Abraço e muito obrigado mesmo......

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.