Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] zmiana nazwy zapisywanego pliku
kaitux
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.11.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Darti
post
Post #2





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

Ostrzeżenie: (0%)
-----


Kod
header('Content-Disposition: attachment; filename="oryginalna_nazwa_pliku.rar"');


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
kaitux
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.11.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:17