| Autor | Zpráva | ||
|---|---|---|---|
| blazej44800 Profil |
#1 · Zasláno: 20. 8. 2012, 12:34:39
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 |
#2 · Zasláno: 20. 8. 2012, 12:41:36
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 |
#3 · Zasláno: 20. 8. 2012, 12:49:24
Viz bod 6. Download souborů zprostředkovaný přes PHP skript
http://kb.wedos.com/webhosting/chyba-503.html |
||
| blazej44800 Profil |
#4 · Zasláno: 20. 8. 2012, 12:58:43
Enyeus:
Super vďaka, hľadať v KB ma vôbec nenapadlo ;) |
||
|
Časová prodleva: 13 let
|
|||
0