Ir para conteúdo

POWERED BY:

Arquivado

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

andrenx

[Resolvido] gerando um nome aleatório para o meu upload

Recommended Posts

Olá, pessoal to quebrando a cabeça, queria gerando um nome aleatório para o meu upload. Como posso coloca esta função neste código. Usando o md5

 

<?php
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
$targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];


	move_uploaded_file($tempFile,$targetFile);
	echo "1";

}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você teria que separar o Diretorio do Arquivo em uma variavel , e o nome em outra ai sim você concatena ..

 

pra usar você usa por ex

 

$dir = $_FILES['Filedata'];
$nome = $_FILES['name'];
$novo_nome = $dir.md5($nome);
// funçao pra upload ... move uploaded .. 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andrey Knupp, fiz a função até a parte de renomear ta Ok.

Problemas. Salva no BD's só fica salvo:

arquivos: d41d8cd98f00b204e9800998ecf8427e

exteção do arquivo tipo: .jpg|.pdf

nem aparece eu tbm não esta movendo o upload para pasta.

se você pode me ajudar. agradeço muito

 

$data = "$_POST[ano]-$_POST[mes]-$_POST[dia]";
$titulo = $_POST[titulo];
$informacoes = $_POST[informacoes]; 
$arquivos = $_POST[arquivos];

// fim da criação da pasta
$uploaddir="../arquivos/balancetes/";
$novo_nome = $dir.md5($nome); 
if($arquivos != "none") {// verifica campo arquivo
if (move_uploaded_file($_FILES['arquivos']['tmp_name'],
$uploaddir . $_FILES['arquivos']['name'])) {
rename($arquivos, $novo_nome);
$arquivos = $_FILES['arquivos']['name'];

}} 

$sql = mysql_query("INSERT INTO balancetes VALUES ('','$data','$titulo','$novo_nome')");

Compartilhar este post


Link para o post
Compartilhar em outros sites

da uma pesquisada na funçao pathinfo

 

 

valeu pela dica, mais fiz diferente. Função remove Acentos espaços.

 

$data = "$_POST[ano]-$_POST[mes]-$_POST[dia]";

$titulo = $_POST[titulo];

$informacoes = $_POST[informacoes];

$arquivos = $_POST[arquivos];

 

// 10MB máximo de Upload

$MAXIMUM_FILESIZE = 10 * 1024 * 1024;

// Extensões de arquivo válido (imagens, word, powerpoint, excel)

$rEFileTypes ="/^\.(jpg|jpeg|gif|png|doc|docx|txt|rtf|pdf|xls|xlsx|ppt|pptx){1}$/i";

$dir_base = "../arquivos/balancetes/";

 

$isFile = is_uploaded_file($_FILES['arquivos']['tmp_name']);

if ($isFile) // temos um arquivo?

{// sanatize file name

// - remove extra spaces/convert to _,

// - remove non 0-9a-Z._- characters,

// - remove leading/trailing spaces

// check if under 5MB,

// check file extension for legal file types

$safe_filename = preg_replace(

array("/\s+/", "/[^-\.\w]+/"),

array("_", ""),

trim($_FILES['arquivos']['name']));

if ($_FILES['arquivos']['size'] <= $MAXIMUM_FILESIZE &&

preg_match($rEFileTypes, strrchr($safe_filename, '.')))

{$isMove = move_uploaded_file (

$_FILES['arquivos']['tmp_name'],

$dir_base.$safe_filename);}

}

$sql = mysql_query("INSERT INTO balancetes VALUES ('','$data','$titulo','$safe_filename')");

 

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.