[PHP] wysylanie pliku na serwer, a inkrementacja nazwy plikow
darkwalker - 13-06-2008 10:17
[PHP] wysylanie pliku na serwer, a inkrementacja nazwy plikow
Witam, mam taki prosty skrypcik do wysylania plikow na serwer. Robie galerie zdjec i chce go wykorzystac, ale nazwy plikow sa kodowane w md5, natomiast ja chcialbym zeby ten skrypt nadawal plikom nazwy w liczbach po kolei np. 1.jpg, 2.jpg, 3... Jak to zrobic?
Kod:
$p_pojemnosc=$_FILES['plik']['size']; $p_typ=$_FILES['plik']['type']; $p_nazwa=$_FILES['plik']['name']; $p_smiec=$_FILES['plik']['tmp_name'];
$p_roz= array_pop(explode(".", $p_nazwa));
$max_size=round(($_POST['max_file_size']/1048576),3)."MB";
$poj_MB=round(($p_pojemnosc/1048576),2).'MB';
$p_nazwa_zm=(md5($p_nazwa)).".".$p_roz;
$folder="pliki/";
//---Kolorki HTML--- $k_cze="<font color=#ff0000>"; $f_koniec="</font>"; $k_nieb="<font color=#0000ff>";
if ($p_pojemnosc <= 0) { echo ("Plik jest pusty nie mogę go przesłać <b>".$k_cze.$p_nazwa." ".$poj_MB.$f_koniec."</b><br />"); echo "<a href=index.php>Wracaj ...</a>"; exit; }
if ($poj_MB > $max_size) { echo("Plik jest za duży maksymalnie można wysłać <b>".$k_cze.$max_size.$f_koniec."</b>"." .Plik wysyłany ma rozmiar <b><i>".$k_nieb.$poj_MB.$f_koniec."</b></i><br />"); echo "<a href=index.php>Wracaj ..."; exit; }
if (file_exists($folder.$p_nazwa_zm)) { echo ("Plik o takiej nazwie jest już na serwerku <b><i>".$p_nazwa_zm."</b></i><br />"); echo "<a href=index.php>Wracaj ..."; exit; }
else { if(!@move_uploaded_file($p_smiec, $folder.$p_nazwa_zm)) exit('Nie mozna zachowac pliku. Prawdopodobnie nie ma folderu lub nie można w nim zapisać');
echo "Przeslanie udało się - <b>".$k_nieb.$p_nazwa."</b>"." ".$poj_MB."<br />"; $path_file=$folder.$p_nazwa_zm; $conn = mysql_connect('*, '*', '*') or die('Error connecting to mysql'); mysql_select_db('*'); $zapytanie=mysql_query("insert into nazwa_tabeli values(NULL,'$p_pojemnosc','$path_file','$p_typ')"); echo "<a href=index.php>Wracaj ..."; }
w0jtas - 13-06-2008 13:07
czy posiadasz dostęp do bazy danych?
jeden sposób to oparcie się o baze danych ale myśle że tutaj jest to zbędne drugi sposób to oparcie się o plik:
Kod:
function getFileNumber() { $fh = fopen('data.ini','r+'); $number = fread($fh,filesize('data.ini')); $number++; fwrite($fh,$number); return $number; }
Piszę na sucho i nie jestem guru więc mogą być błędy ;)
musi istnieć plik data.ini i domyslnie liczba 0 w nim
a potem już tylko dajesz
Kod:
$file = "nazwa_".getFileNumber().".jpg";
darkwalker - 13-06-2008 14:11
No i skrypcik dziala, wysylami pliki, ale mam problem z nazewnictwem. Mianowicie, skrypt do "nazwa_" dodaje niestworzone liczby wiazace sie chyba z rozmiarem pliku, a nie z jego zawartoscia... Zalezy mi na tym, by pliki byly numerowane kolejno, 1,2,3, itd...
darkwalker - 13-06-2008 14:11
aha, i mam dostep do bazy
darkwalker - 13-06-2008 18:06
No niestety nie dalo sie tak jak napisales, ale twoj kod mi pomogl w tym jak to ma dzialac, i juz dziala ;) thx
w0jtas - 14-06-2008 10:42
to się ciesze :) na sucho wychodzi jak wychodzi, ale lepiej jak dam z błędem i ktoś sam pomyśli i jeszcze się poduczy :D
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql/php] jak =?ISO-8859-2?Q?zliczy=E6_ilo=B6=E6_unikalnyc?==?ISO-8859-2?Q?h_rekord=F3w_w_jednym_zapytaniu=3F?=
Delphi for PHP Borlanda - co =?ISO-8859-2?Q?s=B1dzicie_o_tym?==?ISO-8859-2?Q?_pakiecie=3F?=
[PHP i MySQL] Wstawianie =?ISO-8859-2?Q?rekord=F3w_do_bazy_?==?ISO-8859-2?Q?a_z=B3e_kodowanie?=
mysql+php - =?ISO-8859-2?Q?wydajno=B6=E6_przy_olbrzymiej_i?==?ISO-8859-2?Q?lo=B6ci_rekord=F3w?=
Centralny serwer =?ISO-8859-2?Q?log=F3w_MS_Windows_na_Po?==?ISO-8859-2?Q?stgreSQL?=
[MSSQL 2k] - jak =?ISO-8859-2?Q?pod=B3=B1czy=E6_serwer_na_?==?ISO-8859-2?Q?porcie_innym_ni=BF_1433=3F?=
[MSSQL 2K] =?ISO-8859-2?Q?Wp=B3yw_ustawie=F1_regionalnych_?==?ISO-8859-2?Q?serwera_na_zapytania?=
[MySQL] - Wstawianie aktualnej daty do bazy danych - PHP i MySQL
Jedno zapytanie różne wyniki w polu data [mysql i mysql+php]
[MySQL/PHP] Wyszukiwanie rekordu przez kolumnę wskazaną przez zmienną
zanotowane.pldoc.pisz.plpdf.pisz.pldirtyboys.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|