Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Serwer plików
Forum PHP.pl > Forum > PHP
Yorki
Witam, chcę zrobić serwis coś a'la hosting plików, żeby pobrać trzeba być zalogowanym. Jak najlepiej to zrobić? Bo wysyłanie plików 1GB przez skrypt php to chyba słabe jakościowo rozwiązanie.. pythona nie znam, a nie wiem czy jest sens pisać serwer w c++.
lukaskolista
Niby czemu slabe rozwiazanie? Naczytales sie pierdol o niskiej wydajnosci php pisanych przez ludzi bez wiedzy na ten temat. Wiadomo, ze jezyk interpretowany zawsze bedzie troche wolniejszy, ale bez przesady. Napisz sobie prosty upload i sprobuj, ja tam nie widze problemow z uploadem takich plikow.

Najwieksze znaczenie ma tutaj predkosc lacza.
Sephirus
W PHP nie będzie problemem przesyłanie dużych plików a bardziej jak dużo tych plików będzie szło naraz wink.gif IMHO dla średniej wielkości serwisu nie ma to znaczenia czego użyjesz. Polecam jednak (tak jak przedmówca) spróbowanie na PHP (tak będzie najłatwiej) z zastosowaniem serwera lighttpd z wykorzystaniem nagłówka x-send-file (w light to się chyba nazywa inaczej ale znajdziesz). W ten sposób uzyskasz łatwy kod PHP i wystarczającą wydajność.
Yorki
Cytat(lukaskolista @ 14.09.2012, 06:13:07 ) *
Niby czemu slabe rozwiazanie? Naczytales sie pierdol o niskiej wydajnosci php pisanych przez ludzi bez wiedzy na ten temat. Wiadomo, ze jezyk interpretowany zawsze bedzie troche wolniejszy, ale bez przesady. Napisz sobie prosty upload i sprobuj, ja tam nie widze problemow z uploadem takich plikow.

Najwieksze znaczenie ma tutaj predkosc lacza.


Mi nie chodzi o upload, a download.. powyżej 30 plików ściąganych w tym samym czasie (dużych plików ~700-1000MB)
redeemer
Skrypt PHP robi upload smile.gif

http://stackoverflow.com/questions/3697748...-file-using-php

A przy nagłówku x-send-file to nie PHP odczytuje plik i wysyła, ale serwer WWW.
Yorki
A co w przypadku gdybym chciał zrobić swego rodzaju proxy? Wysyłać pliki które nie są u mnie na serwerze? Próbowałem coś w tym stylu:

  1. while ($line = fgets($this->sock, 4096)){
  2. //tutaj sprawdz czy headery juz zostaly wyslane
  3. ...
  4.  
  5. if ($header_passed)
  6. echo $line;
  7. }


Wszystko mi ładnie śmiaga, tylko problem pojawia się przy większych plikach, np archiwach. 700MB archiwum napotyka na błąd CRC pod koniec pliku, czym to może być spowodowane?
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.