Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fael_magnata

[Resolvido] Gerar Nome md5 em um arquivo de foto

Recommended Posts

Ola Amigos Gostaria de pedir a ajuda de vcs para implementar um script que gere um nome md5 no arquivo de imagem para salvar no banco de dados e tmb salvar na pasta segue abaixo meu codigo que deve ser editado para isso

 

obs segue o codigo abaixo pq os botoes de inserir codigo nao esta funcionando

 

<?php

include "../../inc/config.php";

$file = $_FILES['Filedata'];
$album = (int) $_POST['id'];

$filename = $file['name'];
$query = "INSERT INTO tbl_fotos (id_album, file) VALUES ('$album', '$filename')";

mysql_query($query);

$path     = $file['tmp_name'];
$new_path = "../../img/album/".$file['name'];

move_uploaded_file($path, $new_path);

// Vamos usar a biblioteca WideImage para o redimensionamento das imagens
require("../../lib/WideImage/WideImage.php");

// Carrega a imagem enviada
$original = WideImage::load($new_path);

// Redimensiona a imagem original para 800x600 caso ela seja maior que isto e salva
$original->resize(800, 600, 'inside', 'down')->saveToFile($new_path, null, 90);

// Cria a miniatura
$ext = end(explode(".", $new_path)); // Pega a extensão do arquivo
$thumb = str_replace(".$ext", "_thumb.$ext", $new_path); // Substitui a extensão

$original->resize(160, 120, 'inside', 'down')->saveToFile($thumb, null, 90); // Redimensiona e salva

echo mysql_insert_id(); // Retorna o id da foto

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui:

move_uploaded_file($path, $new_path);

 

 

basta definir o novo nome em $new_path. um md5() em $_FILES['name'] pode resolver, mas é melhor se basear no tempo atual, para evitar gerra hashes iguais e sobrescrever arquivos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Axo que no meu caso eu teria e mudar o $file para gerar md5 no banco de dados e tmb no diretorio mas como o $file eh um array que pega varias fotos de uma vez nao estou sabendo como fazer

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui:

move_uploaded_file($path, $new_path);

 

 

basta definir o novo nome em $new_path. um md5() em $_FILES['name'] pode resolver, mas é melhor se basear no tempo atual, para evitar gerra hashes iguais e sobrescrever arquivos

nao vai funcionar a imagem vai perder o type dela se deixar em md5 ai nao vai abri no navegador

ele tem que fazer isso que você falou mais tem que acrescentar no

$ext = $_FILE['foto']['type']

$newpath + $ext;

 

xD tenta isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Amigos Gostaria de pedir a ajuda de vcs para implementar um script que gere um nome md5 no arquivo de imagem para salvar no banco de dados e tmb salvar na pasta segue abaixo meu codigo que deve ser editado para isso

 

obs segue o codigo abaixo pq os botoes de inserir codigo nao esta funcionando

 

<?php

include "../../inc/config.php";

$file = $_FILES['Filedata'];
$album = (int) $_POST['id'];

$filename = $file['name'];
$query = "INSERT INTO tbl_fotos (id_album, file) VALUES ('$album', '$filename')";

mysql_query($query);

$path     = $file['tmp_name'];
$new_path = "../../img/album/".$file['name'];

move_uploaded_file($path, $new_path);

// Vamos usar a biblioteca WideImage para o redimensionamento das imagens
require("../../lib/WideImage/WideImage.php");

// Carrega a imagem enviada
$original = WideImage::load($new_path);

// Redimensiona a imagem original para 800x600 caso ela seja maior que isto e salva
$original->resize(800, 600, 'inside', 'down')->saveToFile($new_path, null, 90);

// Cria a miniatura
$ext = end(explode(".", $new_path)); // Pega a extensão do arquivo
$thumb = str_replace(".$ext", "_thumb.$ext", $new_path); // Substitui a extensão

$original->resize(160, 120, 'inside', 'down')->saveToFile($thumb, null, 90); // Redimensiona e salva

echo mysql_insert_id(); // Retorna o id da foto

?>

 

 

estou no meu trabalho quando chegar vo testar sera que se eu fizer dessa forma dara certo : $filename = $file['name']; para $filename = md5($file['name']); depois fazer um explode para colocar a extensao

 

Ola Amigos Gostaria de pedir a ajuda de vcs para implementar um script que gere um nome md5 no arquivo de imagem para salvar no banco de dados e tmb salvar na pasta segue abaixo meu codigo que deve ser editado para isso

 

obs segue o codigo abaixo pq os botoes de inserir codigo nao esta funcionando

 

<?php

include "../../inc/config.php";

$file = $_FILES['Filedata'];
$album = (int) $_POST['id'];

$filename = $file['name'];
$query = "INSERT INTO tbl_fotos (id_album, file) VALUES ('$album', '$filename')";

mysql_query($query);

$path     = $file['tmp_name'];
$new_path = "../../img/album/".$file['name'];

move_uploaded_file($path, $new_path);

// Vamos usar a biblioteca WideImage para o redimensionamento das imagens
require("../../lib/WideImage/WideImage.php");

// Carrega a imagem enviada
$original = WideImage::load($new_path);

// Redimensiona a imagem original para 800x600 caso ela seja maior que isto e salva
$original->resize(800, 600, 'inside', 'down')->saveToFile($new_path, null, 90);

// Cria a miniatura
$ext = end(explode(".", $new_path)); // Pega a extensão do arquivo
$thumb = str_replace(".$ext", "_thumb.$ext", $new_path); // Substitui a extensão

$original->resize(160, 120, 'inside', 'down')->saveToFile($thumb, null, 90); // Redimensiona e salva

echo mysql_insert_id(); // Retorna o id da foto

?>

 

 

estou no meu trabalho quando chegar vo testar sera que se eu fizer dessa forma dara certo : $filename = $file['name']; para $filename = md5($file['name']); depois fazer um explode para colocar a extensao

Compartilhar este post


Link para o post
Compartilhar em outros sites

$ext = $_FILE['foto']['type']

$newpath + $ext;

 

Já comentei isto aqui esses dias, não sei em qual post: o índice ['type'] não armazena a extensão do arquivo; ele armazena o mime-type do arquivo. São coisas diferentes

 

Há várias maneiras de se pegar a extensão de um arquivo. Uma delas é usando pathinfo()

 

http://www.php.net/pathinfo

Compartilhar este post


Link para o post
Compartilhar em outros sites

$ext = $_FILE['foto']['type']

$newpath + $ext;

 

Já comentei isto aqui esses dias, não sei em qual post: o índice ['type'] não armazena a extensão do arquivo; ele armazena o mime-type do arquivo. São coisas diferentes

 

Há várias maneiras de se pegar a extensão de um arquivo. Uma delas é usando pathinfo()

 

http://www.php.net/pathinfo

 

Solucionado fiz como disse q ia fazer e deu certo muito obrigado a todos

 

//nome da imagem

$img = $filename;

$array = explode('.',$img);

$nome_arquivo = md5(microtime($array[0]));

$nome_arquivo .= "." . $array[1];

 

$query = "INSERT INTO tbl_fotos (id_album, file) VALUES ('$album', '$nome_arquivo')";

 

mysql_query($query);

 

$path = $file['tmp_name'];

$new_path = "../../img/album/".$nome_arquivo;

Compartilhar este post


Link para o post
Compartilhar em outros sites

$array = explode('.',$img);

$nome_arquivo = md5(microtime($array[0]));

$nome_arquivo .= "." . $array[1];

 

e se enviar o arquivo esta.e.a.minha.foto.jpg?

o nome final não terá extensão .jpg

 

por isso falei no pathinfo()

 

 

na pior das hipóteses:

 

$ext = end( explode( '.', $filename ) );

 

mas você não pode garantir que todos os arquivo só possuem um ponto (.)

Compartilhar este post


Link para o post
Compartilhar em outros sites

na documentação tem exemplo:

 

Examples

 

Example #1 pathinfo() Example

<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');

echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // since PHP 5.2.0
?>

The above example will output:

/www/htdocs/inc
lib.inc.php
php
lib.inc

fonte: http://www.php.net/pathinfo

 

 

se não conseguir, poste a maneira como fez, que apontamos onde está o erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo ve se fiz certinho agora se fiz muito obrigado pela ajuda se tiver errado me corrija valew

$get_ext = pathinfo($filename);
$ext = $get_ext["extension"];
$nome_arquivo = md5(uniqid(time())).".".strtolower($ext);  // este é o novo nome da imagem

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.