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

Tratar strings antes de upload de arquivo


lags cap

Pergunta

Olá, com o código abaixo eu recebo uma imagem através de um formulário em uma página html, faço alguns cortes nela e adiciono outra imagem à ela, isso está funcionando perfeitamente.

Estou com problemas de caracteres especiais no nome da imagem que recebo do form html...

Resumindo, antes de fazer o upload, cortar as imagens, movê-las, etc, preciso tratar o nome delas... retirar espaços e parênteses, retirar acentos, etc..

Eu tentei utilizar algumas funções mas sem sucesso.. não consegui resolver, alguém pode dar uma ajuda?

Segue meu código:

<?php

require( "./lib/WideImage.php");

// Example of accessing data for a newly uploaded file
$fileName = $_FILES["uploaded_file"]["name"]; 
$fileTmpLoc = $_FILES["uploaded_file"]["tmp_name"];
// Path and file name
$pathAndName = "cartelas/cart".$fileName;
// Run the move_uploaded_file() function here
$moveResult = move_uploaded_file($fileTmpLoc, $pathAndName);
// Evaluate the value returned from the function if needed


$image = WideImage::load($pathAndName);

$unh = WideImage::load("unh11.png");

$crop1 = $image->crop("25", "50", 111, 132);


$out1 = $crop1->merge($unh,'middle','middle');


$pathAndName1 = "unha-1-".$fileName;


$crop1->saveToFile('./cartelas/estampa'.$pathAndName1);


$out1->saveToFile('./cartelas/'.$pathAndName1);


echo "Imagens geradas:<BR>";

echo "<img src=./cartelas/estampa$pathAndName1><img src=./cartelas/$pathAndName1>";

?>
Tentei utilizar esta função:
function tratar_arquivo_upload($string){
   // pegando a extensao do arquivo
   $partes         = explode(".", $string);
   $extensao         = $partes[count($partes)-1];    
   // somente o nome do arquivo
   $nome            = preg_replace('/\.[^.]*$/', '', $string);    
   // removendo simbolos, acentos etc
   $a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýýþÿ???';
   $b = 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuuyybyRr-';
   $nome = strtr($nome, utf8_decode($a), $b);
   $nome = str_replace(".","-",$nome);
   $nome = preg_replace( "/([^0-9a-zA-Z\.])+/",'-',$nome);

   return utf8_decode(strtolower($nome.".".$extensao));
}

$arquivo_tratado = tratar_arquivo_upload(utf8_decode(pathAndName1));

Mas também não consegui... Alguma ajuda?

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Axo que em:

$nome            = preg_replace('/\.[^.]*$/', '', $string);
você deve fazer assim:
$nome            = preg_replace('/\.[^.]*$/', '', $nome);
????, não sei... ou tente usar com arrays:
<?php
$string = 'The quick brown fox jumped over the lazy dog.';
$patterns = array();
$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements = array();
$replacements[2] = 'bear';
$replacements[1] = 'black';
$replacements[0] = 'slow';
echo preg_replace($patterns, $replacements, $string);
?>

Exemplos:

http://php.net/manual/pt_BR/function.preg-replace.php

Editado por T4TSU
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...