Inside 2 Denunciar post Postado Abril 20, 2010 Caros amigos estou usando esse código de upload em PHP e está me servindo bem, mas preciso implementar umas funcções nele. Mas como não sei programar em PH necessito de ajuda. A primeira função que eu preciso é pegar imagem redimensiona-la e salva-la em 2 tamanhos e em pastas diferentes, ex.:: pasta: foto_g (fotos com 450x338) pasta: foto_p (fotos com 107x80) Já tentei implantar isso mas nao consigo pois nao sei programa em PHP. <?php /* ce s cript est appelé par l'animation flash. Prenez note que si vous instanciez une session ici (session_start(); ) elle sera diférente de celle de la session instanciée par l'utilisateur affichant la page HTML contenant NAS Uploader. Vous ne pouvez donc pas accéder à ses variables de session personnelles L'exmple Upload simple lancé via javascript vous donne un moyen de contourner ce problème. Tout est expliqué. */ //print_r($_FILES); //print_r($_GET); //echo 'var2='.$_GET['variable2']; //cette variable est envoyée via javascript en argument de la fonction goUpload if (isset($_FILES["Filedata"])) { if($_FILES["Filedata"]['error'] == 0){ $tabfile = explode('.', $_FILES['Filedata']['name']); $nomfile = $tabfile[0]; $extfi = $tabfile[1]; // si par exemple on a passé à l'url d'upload un paramètre en GET $save_path = "uploads/".$_GET['dossierup'].'/'; if (file_exists($save_path . $_FILES['Filedata']['name'])) { echo utf8_encode('Un fichier porte déjà ce nom dans ce dossier'); } else { if (move_uploaded_file($_FILES["Filedata"]["tmp_name"], $save_path.(($_FILES["Filedata"]["name"])))) { echo utf8_encode('1'); //on supprime le fichier uploadé //unlink ($save_path.(($_FILES["Filedata"]["name"]))); } else { echo utf8_encode('Erreur d\'écriture'); } } } else { switch ($_FILES["Filedata"]['error']) { case 1: echo 'Fichier trop volumineux'; break; case 2: echo 'Fichier trop volumineux'; break; case 3: echo 'Fichier incomplet'; break; case 4: echo 'Pas de fichier'; break; case 5: echo 'Erreur inconnue'; break; case 6: echo 'Erreur serveur'; //pas de dossier tmp break; case 7: echo utf8_encode('Erreur d\'écriture'); break; case 8: echo 'Extension incorrecte'; break; default: echo 'Erreur inconnue'; break; } } } else { echo utf8_encode("Pas de fichiers envoyés"); } echo utf8_encode('.'); ?> Obrigado pela atenção recebida. Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Borsato 0 Denunciar post Postado Abril 20, 2010 Amigo não olhei seu código, mais criei um pra você rapidinho, pra ficar melhor no seu entendimento. Existe uma classe em PHP que eu já uso em alguns scripts que se chama WideImage, você pode baixar em: BAIXE AQUI Essa classe faz esse trabalho de redimensionar a iamgem para você. Segue o código: <?php require('lib/WideImage.inc.php'); $foto = $_FILES["foto"]["name"]; $pasta_comum = "./"; $pasta_g = "foto_g/"; $pasta_p = "foto_p/"; move_uploaded_file($_FILES["foto"]["tmp_name"], ($pasta_comum . $foto)); //redimensiona para o primeiro tamanho $image = wiImage::load($pasta_comum . $foto); $image = $image->resize(450, 338); // salva para a pasta foto_g $image->saveToFile($pasta_g . $foto); //redimensiona para o segundo tamanho $image = wiImage::load($pasta_comum . $foto); $image = $image->resize(107, 80); // salva para a pasta foto_p $image->saveToFile($pasta_p . $foto); //caso queira apaga a foto original unlink($pasta_comum . $foto); ?> Essa é apenas a página que salva o arquivo e redimensiona nos seus tamanhos. Espero que lhe ajude, Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
Inside 2 Denunciar post Postado Abril 21, 2010 Caro Vinicius Borsato, literalmente vcs que são conhecedores salvam vidas nos ajudadndo assim. Muito obrigado. Porém eu tenho 1 dúvida: Em qual parte do código eu coloco o seu código? Porque em certas partes do código quando coloco o seu código redimenciona beleza, mas a foto nao etsá indo para a pasta "uploads" que deveria ir. E apresenta o erro : Um ficheiro leva já este nome neste processo. no momento o código está assim: <?php /* ce s cript est appelé par l'animation flash. Prenez note que si vous instanciez une session ici (session_start(); ) elle sera diférente de celle de la session instanciée par l'utilisateur affichant la page HTML contenant NAS Uploader. Vous ne pouvez donc pas accéder à ses variables de session personnelles L'exmple Upload simple lancé via javascript vous donne un moyen de contourner ce problème. Tout est expliqué. */ //print_r($_FILES); //print_r($_GET); //echo 'var2='.$_GET['variable2']; //cette variable est envoyée via javascript en argument de la fonction goUpload if (isset($_FILES["Filedata"])) { if($_FILES["Filedata"]['error'] == 0){ $tabfile = explode('.', $_FILES['Filedata']['name']); $nomfile = $tabfile[0]; $extfi = $tabfile[1]; // si par exemple on a passé à l'url d'upload un paramètre en GET $save_path = "uploads/".$_GET['dossierup'].'/'; require('lib/WideImage.inc.php'); $foto = $_FILES["Filedata"]["name"]; $pasta_comum = "uploads/tests/"; $pasta_g = "foto_g/"; $pasta_p = "foto_p/"; move_uploaded_file($_FILES["Filedata"]["tmp_name"], ($pasta_comum . $foto)); //redimensiona para o primeiro tamanho $image = wiImage::load($pasta_comum . $foto); $image = $image->resize(450, 338); // salva para a pasta foto_g $image->saveToFile($pasta_g . $foto); //redimensiona para o segundo tamanho $image = wiImage::load($pasta_comum . $foto); $image = $image->resize(107, 80); // salva para a pasta foto_p $image->saveToFile($pasta_p . $foto); //caso queira apagar a foto original (habilite o código abaixo) // unlink($pasta_comum . $foto); if (file_exists($save_path . $_FILES['Filedata']['name'])) { echo utf8_encode('Un fichier porte déjà ce nom dans ce dossier'); } else { if (move_uploaded_file($_FILES["Filedata"]["tmp_name"], $save_path.(($_FILES["Filedata"]["name"])))) { echo utf8_encode('1'); //on supprime le fichier uploadé //unlink ($save_path.(($_FILES["Filedata"]["name"]))); } else { echo utf8_encode('Erreur d\'écriture'); } } } else { switch ($_FILES["Filedata"]['error']) { case 1: echo 'Fichier trop volumineux'; break; case 2: echo 'Fichier trop volumineux'; break; case 3: echo 'Fichier incomplet'; break; case 4: echo 'Pas de fichier'; break; case 5: echo 'Erreur inconnue'; break; case 6: echo 'Erreur serveur'; //pas de dossier tmp break; case 7: echo utf8_encode('Erreur d\'écriture'); break; case 8: echo 'Extension incorrecte'; break; default: echo 'Erreur inconnue'; break; } } } else { echo utf8_encode("Pas de fichiers envoyés"); } echo utf8_encode('.'); ?> Obrigado pela atenção recebida. Compartilhar este post Link para o post Compartilhar em outros sites
Inside 2 Denunciar post Postado Abril 21, 2010 Caro Vinicius Borsato, consegui fazer funcionar. Obrigado pela ajuda. vou postar um outra questão que eu rpeciso neste script mas vou tentar fazer sozinho desta vez. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
MeninoBonito 0 Denunciar post Postado Abril 21, 2010 Inside tente assim: <?php require('lib/WideImage.inc.php'); if(isset($_FILES['Filedata'])){ if($_FILES['Filedata']['error'] == 0){ $tabfile = explode('.', $_FILES['Filedata']['name']); $nomfile = $tabfile[0]; $extfi = $tabfile[1]; $save_path = 'uploads/'.$_GET['dossierup'].'/'; $foto = $_FILES["Filedata"]["name"]; $pasta_comum = 'uploads/tests/'; $pasta_g = 'foto_g/'; $pasta_p = 'foto_p/'; if(file_exists($save_path . $_FILES['Filedata']['name'])){ echo utf8_encode('Un fichier porte déjà ce nom dans ce dossier'); exit; }else{ move_uploaded_file($_FILES['Filedata']['tmp_name'], $pasta_comum.$foto); } $image = wiImage::load($pasta_comum . $foto); $image = $image->resize(450, 338); $image->saveToFile($pasta_g . $foto); $image = wiImage::load($pasta_comum . $foto); $image = $image->resize(107, 80); $image->saveToFile($pasta_p . $foto); }else{ switch ($_FILES["Filedata"]['error']) { case 1: echo 'Fichier trop volumineux'; break; case 2: echo 'Fichier trop volumineux'; break; case 3: echo 'Fichier incomplet'; break; case 4: echo 'Pas de fichier'; break; case 5: echo 'Erreur inconnue'; break; case 6: echo 'Erreur serveur'; break; case 7: echo utf8_encode('Erreur d\'écriture'); break; case 8: echo 'Extension incorrecte'; break; default: echo 'Erreur inconnue'; break; } } }else{ echo utf8_encode("Pas de fichiers envoyés"); } ?> Compartilhar este post Link para o post Compartilhar em outros sites