Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
?>
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
se file() é um array, absta percorrê-lo com um loop e fazer a mesma coisa que faria se fosse só um arquivo
>
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
>
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
>
$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()
>
>
$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()
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;>
$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 (.)
você poderia me dar um exemplo de pathinfo usando esse meu codigo eu tentei usar mas falhei
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
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 imagemsim. está correto
aqui: