Bobrinha 4 Denunciar post Postado Abril 11, 2012 Olá, por favor alguém poderia me dizer como faço para que no script abaixo ao salvar o arquivo no banco de dados o mesmo seja salvo sem as extensões? somente com o novo nome ? <?php include "../conexao.php"; // Pasta onde o arquivo vai ser salvo $_UP['pasta'] = 'swf/'; // Tamanho máximo do arquivo (em Bytes) $_UP['tamanho'] = 4024 * 4024 * 2; // 8Mb // Array com as extensões permitidas $_UP['extensoes'] = array('swf'); // Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único) $_UP['renomeia'] = true; // Array com os tipos de erros de upload do PHP $_UP['erros'][0] = 'Não houve erro'; $_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP'; $_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML'; $_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente'; $_UP['erros'][4] = 'Não foi feito o upload do arquivo'; // Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro if ($_FILES['arquivo']['error'] != 0) { die("Não foi possível fazer o upload do arquivo flash" . $_UP['erros'][$_FILES['arquivo']['error']]); exit; // Para a execução do script } // Caso script chegue a esse ponto, não houve erro com o upload e o PHP pode continuar // Faz a verificação da extensão do arquivo $extensao = strtolower(end(explode('.', $_FILES['arquivo']['name']))); if (array_search($extensao, $_UP['extensoes']) === false) { echo "Por favor, envie arquivos com extensões permitidas"; } // Faz a verificação do tamanho do arquivo else if ($_UP['tamanho'] < $_FILES['arquivo']['size']) { echo "O arquivo enviado é muito grande"; } // O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta else { // Primeiro verifica se deve trocar o nome do arquivo if ($_UP['renomeia'] == true) { // Cria um nome baseado no UNIX TIMESTAMP atual e com extensão $nome_final = time().'.swf'; } else { // Mantém o nome original do arquivo $nome_final = $_FILES['arquivo']['name']; } // Depois verifica se é possível mover o arquivo para a pasta escolhida if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'] . $nome_final)) { // Upload efetuado com sucesso, exibe uma mensagem e um link para o arquivo echo "Upload efetuado com sucesso!"; } else { // Não foi possível fazer o upload, provavelmente a pasta está incorreta echo "Não foi possível enviar o arquivo, tente novamente"; } // Pasta onde o arquivo vai ser salvo $_UP2['pasta'] = 'img/'; // Tamanho máximo do arquivo (em Bytes) $_UP2['tamanho'] = 1024 * 1024 * 2; // 2Mb // Array com as extensões permitidas $_UP2['extensoes'] = array('jpg', 'png', 'gif'); // Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único) $_UP2['renomeia'] = true; // Array com os tipos de erros de upload do PHP $_UP2['erros'][0] = 'Não houve erro'; $_UP2['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP'; $_UP2['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML'; $_UP2['erros'][3] = 'O upload do arquivo foi feito parcialmente'; $_UP2['erros'][4] = 'Não foi feito o upload do arquivo'; // Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro if ($_FILES['imagem']['error'] != 0) { die("Não foi possível fazer o upload da imagem<br />" . $_UP2['erros'][$_FILES['imagem']['error']]); exit; // Para a execução do script } // Caso script chegue a esse ponto, não houve erro com o upload e o PHP pode continuar // Faz a verificação da extensão do arquivo $extensao2 = strtolower(end(explode('.', $_FILES['imagem']['name']))); if (array_search($extensao2, $_UP2['extensoes']) === false) { echo "Por favor, envie arquivos com as seguintes extensões: jpg, png ou gif"; } // Faz a verificação do tamanho do arquivo else if ($_UP2['tamanho'] < $_FILES['imagem']['size']) { echo "O imagem enviada é muito grande"; } // O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta else { // Primeiro verifica se deve trocar o nome do arquivo if ($_UP2['renomeia'] == true) { // Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg $nome_final2 = time().'.png'; } else { // Mantém o nome original do arquivo $nome_final2 = $_FILES['imagem']['name']; } // Depois verifica se é possível mover o arquivo para a pasta escolhida if (move_uploaded_file($_FILES['imagem']['tmp_name'], $_UP2['pasta'] . $nome_final2)) { $sql = mysql_query ("INSERT INTO teste (flash,imagem) VALUES ('$nome_final','$imagem')"); // Upload efetuado com sucesso, exibe uma mensagem e um link para o arquivo echo "Upload efetuado com sucesso!"; } else { // Não foi possível fazer o upload, provavelmente a pasta está incorreta echo "Não foi possível enviar a imagem, tente novamente"; } }} ?> Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Abril 11, 2012 Aqui: if ($_UP['renomeia'] == true) { // Cria um nome baseado no UNIX TIMESTAMP atual e com extensão $nome_final = time().'.swf'; } else { // Mantém o nome original do arquivo $nome_final = $_FILES['arquivo']['name']; } E aqui: if ($_UP2['renomeia'] == true) { // Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg $nome_final2 = time().'.png'; } else { // Mantém o nome original do arquivo $nome_final2 = $_FILES['imagem']['name']; } caso as variávei de configuração ($_UP e $_UP2) tiverem a opção renomeia como TRUE, dentro do IF, de cada um desses blocos você simplesmente apaga o . '.swf' e . '.png'. Se aquela configuração for FALSE, então, obviamente não tem como apagar. Assim sendo, você substitui ambos os casos por: $nome_final = basename( $_FILES['arquivo']['name'] ); E por: $nome_final2 = basename( $_FILES['imagem']['name'] ); Compartilhar este post Link para o post Compartilhar em outros sites
Bobrinha 4 Denunciar post Postado Abril 13, 2012 Bruno Augusto obrigado Porém, da forma que você disse o arquivo não sera renomeados eu quero que eles sejam renomiados sim e então salvar no BD somente o novo nome mais sem as extensões Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Abril 16, 2012 Desculpa, mas você leu o que eu escrevi? Caso as variávei de configuração ($_UP e $_UP2) tiverem a opção renomeia como TRUE, dentro do IF, de cada um desses blocos você simplesmente apaga o . '.swf' e . '.png'. Ou seja, você quer que renomeia e configurou o script para isso, então seguindo o que disse basta apagar as extensões .swf e .png e o operador de concatenação antes delas (o ponto) e pronto, o arquivo será renomeado sem a extensão. Agora, se você de fato leu e fez conforme eu orientei, e ainda assim não renomeou, então pode ser que o script não esteja funcionando de acordo com aquilo que se espera. Compartilhar este post Link para o post Compartilhar em outros sites
Bobrinha 4 Denunciar post Postado Abril 16, 2012 Bruno Augusto acho que não entendeu :( vou tentar explicar mais claramente Seu tirar a extensão na hora de renomear então ele vai manter o arquivo com a mesma extensão ou seja se o arquivo imagem for gif ele vai continuar .gif mais quero que todas as imagens seja elas .gif .jpg etc fiquem com a extensão .png e no banco so salve o novo nome Basicamente é renomear, das nova extensão e no db so salvar o novo nome Ta complicado já to apanhando a dias e nada de resultados :( Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Abril 16, 2012 Faz o seguinte coloque um: var_dump( $nome_final ); exit; Fora do IF que cria a variável $nome_final Obs: O exit é para interromper a execução e não prosseguir com o upload. Veja se aquilo que é mostrado é uma string numérica, resultado de time(). Compartilhar este post Link para o post Compartilhar em outros sites