Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] zmiana nazwy zapisywanego pliku
Forum PHP.pl > Forum > Przedszkole
kaitux
Witam,
jest taka sprawa na serwerze przechowuje pliki. Podczas uploadu nazwa pliku zmieniana jest na losowy ciag znakow + rozszerzenia. W tym samym czasie do bazy danych zapisuje ten losowy ciag znakow jako biezaca nazwe oraz nazwee orginalna pliku. Teraz kiedy uzytkownik zaloguje sie widzi liste plikow do pobrania. Musze zrobic taki myk, ze kiedy klika on pobierz to zeby w okienku dialogowym podmienilo mi nazwe pliki znajdujacego sie na serwerze spowrotem na nazwe oryginalna. Tylko pytanie jak tego czaru dokonac.
Za wszelkie podpowiedzi i pomoce wielkie dzieki.
Pzdr

kaitux
Darti
Kod
header('Content-Disposition: attachment; filename="oryginalna_nazwa_pliku.rar"');
kaitux
No tak ale headery wysyla sie na samym poczatku zrodla, a wiec w tym przypadku jesli na liscie bedzie 10 plikow to wszystkie bedzie zapisywac pod ta sama nazwa? Dobze rozumuje?

Wpadlem na taki pomysl ze moge stworzyc plik getfile.php w ktorym znajduje sie tylko ten header i za pomoca ?filename przekazywac wartosc przekazywac do headera nazwe plikow. Tylko nie wiem czamu za kazdym razem niezalerznie od rozszezenia chce mi zapisywac jako *.htm. I druga sprawa skad ma widziec ktory plik pobrac tak naprawde?

Udalo sie smile.gif

  1. <?php
  2. $path = "czyli/tam/gdzie/przechowywane/sa/pliki".$id;
  3. $fp=fopen($path,'r'); //id - rzeczywista nazwa pliku nazwa pliku
  4. $size=filesize($path);
  5. header('Content-Type: application');
  6. header('Content-Length:'.$size);
  7. header("Content-Disposition: attachment; filename=$filename"); // nazwa oryginalna pliku przaechowywana w bazie
  8. fpassthru($fp);
  9. fclose($fp);
  10. ?>


a tak go pobieram:

  1. <a href="getfile.php?id=11143e4a832c5b2333">pobierz</a>


moze sie komus przyda smile.gif

ps. dzieki Darti za nakierowanie mnie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.