Преименуване на файл

Kameliaa

Registered
Здравейте, как мога да преименувам оригиналното име на снимките които качвам със номер? само номер да бъде

Код:
<?
if (isset($_POST['submit']))
{
$snimka =  $_FILES["snimka"]["name"] ;

move_uploaded_file($_FILES['snimka']['tmp_name'], "../papka/".$_FILES['snimka']['name']);
}

mysql_query ("INSERT INTO novini (zaglavie, opisanie, snimka) VALUES ('$zaglavie', '$opisanie', '$snimka')");
 ?>
 
Просто на move_uploaded_file подаваш номер вместо снимка?
PHP:
$filename = $nomer . $_FILES['snimka']['type'];
move_uploaded_file($_FILES['snimka']['tmp_name'], "../papka/" . $filename);

// ... insert ... (snimka)... values ( '$filename' )
$nomer ще ти е името на файла.
Може да използваш това за генерирането му - http://php.net/uniqid
PHP:
$nomer = uniqid();
http://stackoverflow.com/questions/460164/unique-and-temporary-file-names-in-php
 
PHP:
<?
if (isset($_POST['submit']))
{
$snimka =  $_FILES["snimka"]["name"] ;
 $ext = end(explode(".", $snimka));
$name = time();
move_uploaded_file($_FILES['snimka']['tmp_name'], "../papka/".$name.$ext);
}

mysql_query ("INSERT INTO novini (zaglavie, opisanie, snimka) VALUES ('$zaglavie', '$opisanie', '$snimka')");
 ?>
:?: :?:
 
Към кода на колегата над мен ще добавя само за името промяна, която и при него я има но все пак:
$name = uniqid(rand(0, time());
PHP:
<?
if (isset($_POST['submit'])){
	$snimka =  $_FILES["snimka"]["name"] ;
	$ext = end(explode(".", $snimka));
	$name = uniqid(rand(0, time());
	move_uploaded_file($_FILES['snimka']['tmp_name'], "../papka/".$name.$ext);
}

mysql_query ("INSERT INTO novini (zaglavie, opisanie, snimka) VALUES ('$zaglavie', '$opisanie', '$snimka')");
 ?>
 
Благодаря ви :?:

uniqid създава уникален номер всеки път нали? може ли да се променя колко дълъг да бъде той?

а този ред каква функция изпълнява
Код:
$ext = end(explode(".", $snimka));
 
Kameliaa каза:
Благодаря ви :?:

uniqid създава уникален номер всеки път нали? може ли да се променя колко дълъг да бъде той?

а този ред каква функция изпълнява
Код:
$ext = end(explode(".", $snimka));
Да за uniqid прави точно това. За допълнителен рандом съм ти поставил таймера като принципен диапазон.
$name = uniqid(rand(0, time());

$ext = end(explode(".", $snimka));
Този ред взима разширението на снимката. Представи си, че имаш snimka.1.jpg . Филтрирайщи го през кода променливата $ext ще получи стойност jpg или gif или png или каквото е разширението на оригиналната снимка.

:)
 
dakata__92 каза:
Да за uniqid прави точно това. За допълнителен рандом съм ти поставил таймера като принципен диапазон.
$name = uniqid(rand(0, time());

Така вероятността в бъдеще някога да се повтори номер отново се свежда до минимум, нали?


dakata__92 каза:
$ext = end(explode(".", $snimka));
Този ред взима разширението на снимката. Представи си, че имаш snimka.1.jpg . Филтрирайщи го през кода променливата $ext ще получи стойност jpg или gif или png или каквото е разширението на оригиналната снимка.

Да разбирам ли, че без него няма да разпознава разширението на снимката и винаги ще създава едно и също такова, примерно .jpeg?
 
Kameliaa каза:
dakata__92 каза:
Да за uniqid прави точно това. За допълнителен рандом съм ти поставил таймера като принципен диапазон.
$name = uniqid(rand(0, time());

Така вероятността в бъдеще някога да се повтори номер отново се свежда до минимум, нали?


dakata__92 каза:
$ext = end(explode(".", $snimka));
Този ред взима разширението на снимката. Представи си, че имаш snimka.1.jpg . Филтрирайщи го през кода променливата $ext ще получи стойност jpg или gif или png или каквото е разширението на оригиналната снимка.

Да разбирам ли, че без него няма да разпознава разширението на снимката и винаги ще създава едно и също такова, примерно .jpeg?
Да вероятността е граничеща с 0 за твоите нужди.

Да това разпознава разширението на снимката. Ако го няма то сам трябва да подадеш какво да е. Тоест статично примерно да напишеш вместо:
$name.$ext да е $name.'.jpg' примерно. :)
 
Разбрах. БЛАГОДАРЯ МНОГО !!!!!!!
love-022.gif
 

Back
Горе