Skocz do zawartości

Pobieranie plików w VestaCP po wejściu przez użytkownika w URL


 Udostępnij

Rekomendowane odpowiedzi

Cześć, korzystam z VestaCP i potrzebuję zrobić pobieranie plików po wejściu przez użytkownika w URL. Teraz nachodzi pytanie, jaką ścieżkę podać czy pełną /home/admin.... czy od razu z public'a

Funkcja:

function smartReadFile($location, $filename, $mimeType='application/octet-stream')
{ if(!file_exists($location))
  { header ("HTTP/1.0 404 Not Found");
    return;
  }
  
  $size=filesize($location);
  $time=date('r',filemtime($location));
  
  $fm=@fopen($location,'rb');
  if(!$fm)
  { header ("HTTP/1.0 505 Internal server error");
    return;
  }
  
  $begin=0;
  $end=$size;
  
  if(isset($_SERVER['HTTP_RANGE']))
  { if(preg_match('/bytes=\h*(\d+)-(\d*)[\D.*]?/i', $_SERVER['HTTP_RANGE'], $matches))
    { $begin=intval($matches[0]);
      if(!empty($matches[1]))
        $end=intval($matches[1]);
    }
  }
  
  if($begin>0||$end<$size)
    header('HTTP/1.0 206 Partial Content');
  else
    header('HTTP/1.0 200 OK');  
  
  header("Content-Type: $mimeType"); 
  header('Cache-Control: public, must-revalidate, max-age=0');
  header('Pragma: no-cache');  
  header('Accept-Ranges: bytes');
  header('Content-Length:'.($end-$begin));
  header("Content-Range: bytes $begin-$end/$size");
  header("Content-Disposition: inline; filename=$filename");
  header("Content-Transfer-Encoding: binary\n");
  header("Last-Modified: $time");
  header('Connection: close');  
  
  $cur=$begin;
  fseek($fm,$begin,0);

  while(!feof($fm)&&$cur<$end&&(connection_status()==0))
  { print fread($fm,min(1024*16,$end-$cur));
    $cur+=1024*16;
  }
}

Użycie:

$file = MD5($config['files']['salt']['1'].$_GET["name"].$config['files']['salt']['2']);
smartReadFile('/home/admin/web/domena/public_html/!pliki', $file);

ale dupa, nie pobiera... ktoś ma pomysł?

Odnośnik do komentarza
Udostępnij na innych stronach

Problem wciąż nierozwiązany? Dodaj swoją odpowiedź

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto. Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

  • Ostatnio przeglądający

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
  • Podobna zawartość

    • Siemka, postanowiłem żeby postawić stronę web dla TeamSpeak lecz po wgraniu całej zawartości i przejściu do instalacji otrzymuje błąd.
      Na maszynie moja konfiguracja wykonał automatyczny skrypt vestacp
      Oops! We cannot find Composer's autoload file.
    • Mam mały problem z konfiguracją reguł w firewall na vpsie który opiera się o Vesta Control Panel, próbuje dodać Monitoring SLA  z ovh aby poprawnie działa, na necie wyczytałem że muszę te zmiany wprowadzić ręcznie z racji że panel nie przyjmuje takiej formy ip
      Adresy ip jakie muszę dodać
      92.222.184.0/24 92.222.185.0/24 92.222.186.0/24 167.114.37.0/24 217.182.72.4/32 Reguły jakie wprowadziłem w pliku
      RULE='19' ACTION='ACCEPT' PROTOCOL='ICMP' IP='92.222.184.0/24' COMMENT='IP Monitoring SLA' SUSPENDED='no' TIME='00:59:00' DATE='2019-01-30' RULE='20' ACTION='ACCEPT' PROTOCOL='ICMP' IP='92.222.185.0/24' COMMENT='IP Monitoring SLA' SUSPENDED='no' TIME='00:59:01' DATE='2019-01-30' RULE='21' ACTION='ACCEPT' PROTOCOL='ICMP' IP='92.222.186.0/24' COMMENT='IP Monitoring SLA' SUSPENDED='no' TIME='00:59:02' DATE='2019-01-30' RULE='22' ACTION='ACCEPT' PROTOCOL='ICMP' IP='167.114.37.0/24' COMMENT='IP Monitoring SLA' SUSPENDED='no' TIME='00:59:03' DATE='2019-01-30' RULE='23' ACTION='ACCEPT' PROTOCOL='ICMP' IP='217.182.72.4/32' COMMENT='IP Monitoring SLA' SUSPENDED='no' TIME='00:59:04' DATE='2019-01-30' I teraz po przejściu do zakładki  firewall,  automatycznie dodało wszystkim ip port 9987

    • Jakie panele polecacie? VestaCP odpada ponieważ po zmianie ścieżki na drugi dysk wywala apache
      virtualmin - odpada - zbyt obciąża VPS
      ● apache2.service - LSB: Apache2 web server Loaded: loaded (/etc/init.d/apache2) Drop-In: /lib/systemd/system/apache2.service.d └─forking.conf Active: failed (Result: exit-code) since Fri 2019-01-04 20:02:19 CET; 30s ago Process: 3480 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS) Process: 3463 ExecReload=/etc/init.d/apache2 reload (code=exited, status=1/FAILURE) Process: 3539 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE) Jan 04 20:02:19 vps633171.ovh.net systemd[1]: Starting LSB: Apache2 web server... Jan 04 20:02:19 vps633171.ovh.net apache2[3539]: Starting web server: apache2 failed! Jan 04 20:02:19 vps633171.ovh.net apache2[3539]: The apache2 configtest failed. ... (warning). Jan 04 20:02:19 vps633171.ovh.net apache2[3539]: Output of config test was: Jan 04 20:02:19 vps633171.ovh.net apache2[3539]: apache2: Syntax error on line 83 of /etc/apache2/apache2.conf: Syntax error on line 2 of /etc/apache2/conf....directory Jan 04 20:02:19 vps633171.ovh.net apache2[3539]: Action 'configtest' failed. Jan 04 20:02:19 vps633171.ovh.net apache2[3539]: The Apache error log may have more information. Jan 04 20:02:19 vps633171.ovh.net systemd[1]: apache2.service: control process exited, code=exited status=1 Jan 04 20:02:19 vps633171.ovh.net systemd[1]: Failed to start LSB: Apache2 web server. Jan 04 20:02:19 vps633171.ovh.net systemd[1]: Unit apache2.service entered failed state. Hint: Some lines were ellipsized, use -l to show in full. root@vps633171:~#
    • Witam,
      od dłuższego czasu próbuje uporać się z problemem skrzynki e-mail na VestaCP. Nie mogę się połączyć.
      [03-Dec-2018 13:09:52 -1000]: <lto2cs97> IMAP Error: Login failed for gowno from xxx(X-Forwarded-For: xxx). AUTHENTICATE PLAIN: Authentication failed. in /usr$ [03-Dec-2018 13:29:16 -1000]: <lto2cs97> PHP Error: Failed to load config from /var/lib/roundcube/plugins/jqueryui/config.inc.php in /usr/share/roundcube/program/lib/Roundcube/$ [03-Dec-2018 13:29:18 -1000]: <lto2cs97> IMAP Error: Login failed for @xxx.pl from xxx(X-Forwarded-For: xxx). AUTHENTICATE PLAIN: Authentication fai$ [03-Dec-2018 13:29:32 -1000]: <lto2cs97> PHP Error: Failed to load config from /var/lib/roundcube/plugins/jqueryui/config.inc.php in /usr/share/roundcube/program/lib/Roundcube/$ [03-Dec-2018 13:29:34 -1000]: <lto2cs97> IMAP Error: Login failed for @xxx.pl from xxx(X-Forwarded-For: xxx). AUTHENTICATE PLAIN: Authentication f$
    • Czy jest możliwość by panel VestaCP zainstalować na jednym dysku a na drugim dać możliwość dodawanie plików itp.
      Jak usunąć przekierowanie https z VestaCp? 
  • Najnowsze tematy

  • Ostatnio rozwiązane

×