Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jaki link wygenerowac,zeby user po kliknieciu w, niego pobral plik i jednoczesnie go usun
miedzna
post
Post #1





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


Jak w temacie, chce przekazac userowi link w postaci:
http://www.costam.pl/archiwum.zip
ale jednoczesnie chce do tego linku dodac jakis unikalny hash, zeby za pomoca tego hasha usunac plik z serwera unlink`iem?

Link by wyglądał tak:
http://www.costam.pl/pobierz.php?plik=arch...ip&hash=hd7eyr7
tylko pytanie brzmi, jak musi wyglądąc ten plik pobierz.php, żeby dał możliwość userowi pobrać ten plik archiwum.zip a po pobraniu odrzu go usunąć z serwera?

Dzięki

Ten post edytował miedzna 24.02.2006, 16:21:59
Go to the top of the page
+Quote Post
Bastion
post
Post #2





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


  1. <?php
  2. $file = $_GET['file'];
  3. $hash = $_GET['hash'];
  4.  
  5. header("Pragma: public");
  6. header("Expires: 0");
  7. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  8. header("Cache-Control: public");
  9. header("Content-Description: File Transfer");
  10. header("Content-Type: application/force-download");
  11. header("Content-Disposition: attachment; filename=".basename($file).";");
  12. header("Content-Transfer-Encoding: binary");
  13. header("Content-Length: ".filesize($file));
  14. $chunksize = (1024*1024);
  15. $buffer = '';
  16. $handle = fopen($file, 'rb');
  17. while (!feof($handle))
  18. {
  19. $buffer = fread($handle, $chunksize);
  20. echo $buffer;
  21. }
  22. fclose($handle);
  23. if ($hash == 'dhjdid93')
  24. {
  25. unlink($file);
  26. }
  27. ?>


Tak z grubsza, nalazaloby jeszcze zabezpieczyc by user nie mogl popbierac wszystkiego co poda przez parametr file. Ale idea wydaje sie byc dobra

Ten post edytował Bastion 24.02.2006, 16:28:05


--------------------
Go to the top of the page
+Quote Post
kszychu
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Troszkę to ryzykowne. A co, jeśli podczas ściągania pliku coś się wykrzaczy i user nie zdoła go ściągnąć? Plik już zostanie usunięty, więc nie będzie mógł powtórzyć.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
miedzna
post
Post #4





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


Hmmm, faktycznie.
Masz jakieś inne rozwiązanie?
Aha i gdzie w tym skrypcie można ustawić warunek, że jak user drugi raz kliknie w ten sam link, to dostanie info, że już wykorzystał kliknięcie?

Ten post edytował miedzna 24.02.2006, 16:44:55
Go to the top of the page
+Quote Post
kszychu
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


A co Ty właściwie chcesz osiągnąć? Opisz o co Ci chodzi.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Bastion
post
Post #6





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


miedzna: lepszym rozwiazaniem wydaje mi sie zrobic linki do oryginalnego pliku, ktore maja okreslona waznosc. np 2ha od klikniecia, jesli kolejne klikniecie nastapi po 2godzinach to link jest usuwany a user poinformowany. co do sciagania multiuser musialbys zapisywac adres ip tego ktory kliknal pierwszy i w razie przerwania transferu umozliwic tylko sciaganie temu ktorego ip zostal zapisany


--------------------
Go to the top of the page
+Quote Post
miedzna
post
Post #7





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


Troche to pokręcone, ale dobra:
user zamawia sobie zdjęcie, ma do podglądu tylko miniaturki. Przy zamawianiu wpisuje dane i mn email. Wtedy ja (czytaj php) zipuje plik, który on sobie zamówił, wysyłam do niego link za pomoca którego on ten link pobierze sobie i tyle.
To nie jest jakieś komercyjne rozwiązanie, za zdjęcia nie muszą płacić, mogą pobierać dowolną ilość zdjęć, chodzi tylko o zbieranie informacji gdzie te zdjęcia lądują smile.gif
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 - 17:00