Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda para redimensionar e renomear arquivos depois do upload


Cristiano Possa

Pergunta

Boa noite galera.

Queria só uma ajudinha:

Tenho uma galeria de fotos aqui, e a mesma trabalha sem banco de dados:

Ela funciona(ava) da seguinte maneira:

O Cliente acessa o admin da galeria;

Clica em Mudar Foto;

Insere a foto que deseja (com qualquer nome);

Envia o form;

O server PHP, lança o arquivo mudarfoto.php que:

Pegava o nome da foto;

Mudava o nome da foto, seguindo uma sequencia ligada por variáveis e TXT's (exemplo do caso: 01.jpg e 01thumbs.jpg

Redimensionava para o tamanho especifico (altura: 350px (proporcional))

Redimensionava a Thumb para 104x63px

Só que a classe que usaram possui funções que não são mais usados no PHP tais como:

system();

E agora eu mudei de servidor de hospedagem e não tem RAIO que faça funcionar.

Gostaria de saber se existe alguma maneira de RENOMEAR e REDIMENSIONAR seguindo a sequencia já utilizada, SEM usar a função system();.

O código do arquivo mudarfoto.php está aí:


<?php
//error_reporting(0);
/***********************************************
* Snippet Name : File Uploader *
* Scripted By : Hermawan Haryanto *
* Website : http://hermawan.com *
* Email : hermawan@codewalkers.com *
* License : GPL (General Public License) *
***********************************************/

//include($_SERVER["DOCUMENT_ROOT"] . "/preincs.php");
include('libs.php');

//$codigo = $_POST['codigo'];
$codigo = $nro;
$numoffile = 1;

if ($numoffile == '') {
?>

<form action="index.php" method="POST">
Quantidade de fotos: <input type="text" name="numoffile" size="2" maxlength="2">
</form><hr>
<?

} else {

print '<center><table width="50%" border="0" class="table1">';
// $numoffile = 3;
// Fix path of your file to be uploaded, don't forget to CHMOD 777 to this folder
$file_dir = $_SERVER["DOCUMENT_ROOT"] . "/art/"; ## SLASH
if ($_POST) {
// system("rm -f $file_dir" . '*.jpg');
for ($i=0;$i<$numoffile;$i++) {
if (trim($_FILES['myfiles']['name'][$i])!="") {
$newfile = $file_dir.$_FILES['myfiles']['name'][$i];
move_uploaded_file($_FILES['myfiles']['tmp_name'][$i], $newfile);
$j++;

## Diego
$files[$i] = "$newfile";

## /Diego

}
}
}
if (isset($j)&&$j>0) print "<font face=verdana size=2 color=#FF0000>Foi adicionado mais um quadro. <a href=\"index.php\">Voltar</font><br><br>";
print "<form method='post' enctype='multipart/form-data'>";
print "<input type=hidden name=codigo value='$codigo'>";
for($i=0;$i<$numoffile;$i++) {
$u = $i + 1;
print '<tr>
<td class="td1">Foto Nro. ' . $nro . ':</td>
<td class="td2">';
print "<input type='file' name='myfiles[]' size='30' class=\"inputtext\"></td></tr>\n";
// print "Descricao: <input type=text name=\"desc$i\" value=''><br><br>\n\n";
}
print '<tr><td colspan=2 class="td2">';
print "<input type='hidden' name='numoffile' value=\"$numoffile\">";
print "<input type='submit' name='action' value='Adicionar' class=\"boton_submit\"></td></tr>";
print "</form>";
$cnt = 0;
while ($cnt < $numoffile) {
$desc = "desc$cnt";
$arraydesc[$cnt] = ${$desc};
$cnt++;

}
print '</table></center>';
//include('footeradmin.php');

function imprimefiles($files, $file_dir, $nro) {

$cnt1=0;
$desc = "desc$cnt1";
foreach ($files as $file) {
$file = eregi_replace("$ruta_db/$codigo/", '', $file);
$file = eregi_replace(' ', '\\ ', $file);
$desc = "desc$cnt1"; print $desc1;
$cnt1++;
// Resizes
// -------
// print 'mogrify -resize x350 ' . "$file";
$mogrify = 'mogrify -resize x350 ' . "$file";
system($mogrify);
system("mv $file $file_dir" . "$nro" . '.jpg');

## Thumbnails
## ----------
system("cp $file_dir" . "$nro.jpg $file_dir" . "$nro" . 'tumb.jpg');
# copy("$file_dir" . "$file", "$file_dir" . 'thumb_' . "$file");
$mogrify = 'mogrify -scale 104x63! ' . "$file_dir" . "$nro" . 'tumb.jpg';
system($mogrify);
//system('mogrify -resize 128 /home/wwwarra/public_html/admin/romeo.jpg');
// print "$file <br>";
}

imprimefiles($files, $file_dir, $nro);

}




}


?>
[/codebox]

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

system ainda existe no PHP, só que deve estar desativada no servidor por motivos de segurança (aliás, não sei como deixaram isso ativado no seu outro servidor).

Quanto a sua pergunta, sim, tem como renomear/redimensionar sem usar a função system, para renomear basta usar o rename, ou copiar o arquivo já com o nome final (da pasta temp do servidor pra definitiva), para redimensionar eu costumo usar a biblioteca GD... já até postei aqui no fórum isso...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...