ďťż
 
[PHP] wysylanie pliku na serwer, a inkrementacja nazwy plikow ďťż
 
[PHP] wysylanie pliku na serwer, a inkrementacja nazwy plikow
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • dirtyboys.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com