Autor Zpráva
blazej44800
Profil
Ahojte,
používam hosting Wedos a mám vytvorený skript pre sťahovanie príloh kvôli zabezpečeniu:

<?

include_once("./system/_inc.php");
$id = $safe->intval($_REQUEST["id"]);

if (!$user->auth or !$id) exit;

$row = mysql_fetch_object(mysql_query('
  SELECT file, real_name
  FROM `'. $config->db["prefix"] .'attachments`
  WHERE id = "'.$id.'"
  LIMIT 1
'));
mysql_close();

$file = "./attachments/" . $row->file;

if (!file_exists($file) or !$row->file) exit("Attachment not found!");

$len = filesize($file);
$filename = $row->real_name;
$file_extension = strtolower(substr(strrchr($filename,"."),1));

// Content-Type
switch( $file_extension ) {
   case "exe":  $ctype="application/octet-stream"; break;
   case "zip":  $ctype="application/zip"; break;
   case "mp3":  $ctype="audio/mpeg"; break;
   case "mpg":  $ctype="video/mpeg"; break;
   case "avi":  $ctype="video/x-msvideo"; break;
   case "gz":   $ctype="application/gzip"; break;
   case "xls":  $ctype="application/msexcel"; break;
   case "xla":  $ctype="application/msexcel"; break;
   case "hlp":  $ctype="application/mshelp"; break;
   case "chm":  $ctype="application/mshelp"; break;
   case "ppt":  $ctype="application/mspowerpoint"; break;
   case "pps":  $ctype="application/mspowerpoint"; break;
   case "doc":  $ctype="application/msword"; break;
   case "dot":  $ctype="application/msword"; break;
   case "dot":  $ctype="application/msword"; break;
   case "pdf":  $ctype="application/pdf"; break;
   case "ps":   $ctype="application/postscript"; break;
   case "rtf":  $ctype="application/rtf"; break;
   case "xml":  $ctype="application/xml"; break;
   case "swf":  $ctype="application/x-shockwave-flash"; break;
   case "wav":  $ctype="application/x-wav"; break;
   case "gif":  $ctype="application/gif"; break;
   case "jpeg": $ctype="application/jpeg"; break;
   case "jpg":  $ctype="application/jpeg"; break;
   case "png":  $ctype="application/png"; break;
   case "tiff": $ctype="application/tiff"; break;
   case "tif":  $ctype="application/tiff"; break;
   case "csv":  $ctype="text/comma-separated-values"; break;
   case "txt":  $ctype="text/plain"; break;
   default: $ctype="application/force-download";
}
   //Begin writing headers
   header("Pragma: public");
   header("Expires: 0");
   header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
   header("Cache-Control: public");
   header("Content-Description: File Transfer");

   //Use the switch-generated Content-Type
   header("Content-Type: $ctype");

   //Force the download
   header("Content-Disposition: attachment; filename=".$filename.";");
   header("Content-Transfer-Encoding: binary");
   header("Content-Length: ".$len);
   @readfile($file);
   exit;
?>

Je tu ale problém, že Wedos povoľuje v základnej verzii hostingu maximálny počet 5 PHP procesov naraz. Ako sa to bde teda brať počas sťahovania súboru? Bude stále obsadený PHP proces alebo nie? Bude môcť sťahovať 6 ľudí prílohy naraz?

Ďakujem za odpovede :)
ShiraNai7
Profil
blazej44800:
Bude stále obsadený PHP proces alebo nie?

No i během průběhu readfile() skript stále logicky běží (čeká na dokončení).
Enyeus
Profil
Viz bod 6. Download souborů zprostředkovaný přes PHP skript
http://kb.wedos.com/webhosting/chyba-503.html
blazej44800
Profil
Enyeus:
Super vďaka, hľadať v KB ma vôbec nenapadlo ;)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0