hvjohny 1 Denunciar post Postado Junho 7, 2013 Boa noite galera. Depois de muito pesquisar na internet, resolvi recorrer ao imasters, que em todos problemas que tive obtive respostas e soluções.Espero que possam me ajudar dessa vez também. Oque parece fácil, acabou virando uma grande dor de cabeça... Estou usando o "Uploadify" para realizar upload de arquivos, quando se trata de imagens, uso a função md5+mt_rand e não ocorre nenhum problema à respeito de acentuações. Porém agora não se trata de imagens. Estou enviando faixas de cd, e quando alguma faixa tem carácter especial, é substituído por outro carácter. No banco de dados fica tudo certo, com o nome original, o problema é no arquivo, o nome é alterado no arquivo. Vejam o exemplo: Ao terminar o upload, a faixa 11 Tubarão, fica como: 11 Tubarão. E lembrando, no banco fica correto(11 Tubarão). Seria fácil arrumar esse problema substituindo os caracteres especiais por outra coisa, mas como se trata de faixas, e essas faixas musicais serão baixadas, não é muito interessante para esse projeto. A única coisa que consegui encontrar à respeito, e que não conseguiu me ajudar foi acrescentar as funções: html_entity_decode(htmlentities($_FILES['Filedata']['name'], ENT_QUOTES, 'UTF-8')); Bom, para quem quiser dar uma olhada no código, aqui está o início dele: $diretorio = '../../../arquivos/player/'; // Caminho $PI = addslashes(@$_REQUEST['PI']); if (!empty($_FILES)) { $arquivo = $_FILES['Filedata']['tmp_name']; // Validate the file type $fileTypes = array('mp3'); // File extensions $fileParts = pathinfo($_FILES['Filedata']['name']); $novo_nome = $_FILES['Filedata']['name']; // AQUI SERIA ACRESCENTADO AS FUNÇÕES ACIMA $caminho_arquivo = $diretorio.$novo_nome; if (in_array($fileParts['extension'],$fileTypes) && !file_exists('../../../arquivos/player/'.$novo_nome)) { if(move_uploaded_file($arquivo,$caminho_arquivo)) { // envia o arquivo e faz as outras verificações Bom galera, é isso. Espero que me ajudem. Muito obrigado pela atenção. Compartilhar este post Link para o post Compartilhar em outros sites
InterPlanet 7 Denunciar post Postado Junho 7, 2013 Oi, boa noite. Provavelmente há um conflito na codificação em algum lugar. Responda: 1) Qual a codificação da página? 2) Qual a codificação do banco de dados? 3) Qual a codificação do PHP? Compartilhar este post Link para o post Compartilhar em outros sites
hvjohny 1 Denunciar post Postado Junho 7, 2013 Oi, boa noite. Provavelmente há um conflito na codificação em algum lugar. Responda: 1) Qual a codificação da página? 2) Qual a codificação do banco de dados? 3) Qual a codificação do PHP? Obrigado pela resposta amigo. O charset da página onde uso o uploadify está setado como utf-8, no banco de dados igualmente(mas como comentei, no banco de dados é adicionado corretamente) e no script PHP, onde o uploadify envia a requisição, não está setado nenhuma codificação. Já tentei setar o head como utf-8, mas continuou com problema. Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Saraiva 84 Denunciar post Postado Junho 8, 2013 Bom amigo ja tentou fazer um teste para com a função utf8_encode() no caractere ã para ver o resultado ou ainda ja olhou direto em seu banco de dados para ver como esta o caractere ã??? Bom se você fizer um dos dois teste vera que o ã é o ã em UTF-8. Uma das soluções para o seu problema seria salvar o arquivo com o nome sem acento e na hora do download e na hora do download colocar o nome com o acento assim com esta salvo no DB. Compartilhar este post Link para o post Compartilhar em outros sites
hvjohny 1 Denunciar post Postado Junho 8, 2013 Bom amigo ja tentou fazer um teste para com a função utf8_encode() no caractere ã para ver o resultado ou ainda ja olhou direto em seu banco de dados para ver como esta o caractere ã??? Bom se você fizer um dos dois teste vera que o ã é o ã em UTF-8. Uma das soluções para o seu problema seria salvar o arquivo com o nome sem acento e na hora do download e na hora do download colocar o nome com o acento assim com esta salvo no DB. Realmente amigo, ã é ã passado para utf8. Graças a isso consegui encontrar a função que faz o contrário(utf8_decode). foi só fazer isso que agora está salvando corretamente na pasta. problema resolvido, muito obrigado pela dica. Resolução pra quem estiver com o mesmo problema: $caminho_arquivo = utf8_decode($diretorio.$novo_nome); Abraços, e obrigado por ajudarem. Compartilhar este post Link para o post Compartilhar em outros sites