PHP gevorderde |
|
Ik heb een hosting gevonden waar zowel bandbreedte als schrijfruimte onbeperkt is. Het enige nadeel is dat je bestanden < 500 kb moeten zijn.
Dit probleem had ik opgelost door mijn video's en muziek bestanden op te splitsen in txt bestandjes van max 500 kb.
Ik roep ze daarna op de volgende manier op:
<object width="320" height="285">
<param name="src" value="http://belgiangee.t35.com/lees.php?type=geef&file=5&header=wmv&md5=94635ae8f36bf4b09df905320234fedb">
<param name="autoplay" value="true">
<param name="controller" value="true">
<embed src="http://belgiangee.t35.com/lees.php?type=geef&file=5&header=wmv&md5=94635ae8f36bf4b09df905320234fedb" autostart="true" loop="false" width="320" height="285" controller="true"></embed>
</object>
</div>
<div align="center" style="font-weight: bold;"><br />
<a href="http://belgiangee.t35.com/lees.php?type=download&file=5&header=wmv&md5=94635ae8f36bf4b09df905320234fedb" target="_blank">>> Klik hier om dit bestand te downloaden <<</a></div>
<object width="320" height="285"> <param name="src" value="http://belgiangee.t35.com/lees.php?type=geef&file=5&header=wmv&md5=94635ae8f36bf4b09df905320234fedb"> <param name="autoplay" value="true"> <param name="controller" value="true"> <embed src="http://belgiangee.t35.com/lees.php?type=geef&file=5&header=wmv&md5=94635ae8f36bf4b09df905320234fedb" autostart="true" loop="false" width="320" height="285" controller="true"></embed> </object> </div> <div align="center" style="font-weight: bold;"><br /> <a href="http://belgiangee.t35.com/lees.php?type=download&file=5&header=wmv&md5=94635ae8f36bf4b09df905320234fedb" target="_blank">>> Klik hier om dit bestand te downloaden <<</a></div>
Het bestand lees.php ziet er dan als volgt uit:
<?php
// Opgegeven data geldig?
if(($_GET["type"] == "check" or $_GET["type"] == "geef" or $_GET["type"] == "download") && is_numeric($_GET["file"]) && strlen($_GET["header"]) == 3 && strlen($_GET["md5"]) == 32)
{
// Content-type bepalen
switch($_GET["header"])
{
case "gif": $ctype = "image/gif"; break;
case "png": $ctype = "image/png"; break;
case "jpeg":
case "jpg": $ctype = "image/jpg"; break;
case "mp3": $ctype = "audio/mpeg"; break;
case "wav": $ctype = "audio/x-wav"; break;
case "wma": $ctype = "audio/x-ms-wma"; break;
case "mpeg":
case "mpg":
case "mpe": $ctype = "video/mpeg"; break;
case "mov": $ctype = "video/quicktime"; break;
case "avi": $ctype = "video/x-msvideo"; break;
case "wmv": $ctype = "video/x-ms-wmv"; break;
default: $ctype = "application/force-download";
}
$geheel = "";
$lezen = @opendir("file_" . $_GET["file"]); // Map openen
while(false != ($inhoud = @readdir($lezen))) // Map inhoud inlezen
{
if($inhoud != "." && $inhoud != ".." && substr($inhoud, 0, 5) == "deel_") // Corect bestand?
$geheel .= @file_get_contents("file_" . $_GET["file"] . "/" . $inhoud); // Toevoegen aan geheel
}
if(md5($geheel) != $_GET["md5"]) // Geldig bestand?
echo "error";
elseif($_GET["type"] == "geef") // Bestand inlezen
{
ini_set("zlib.output_compression", "Off"); // Compressie afzetten
// Header instellen en bestand versturen
header("Content-Type: " . $ctype);
header("Content-Length: " . strlen($geheel));
header("Accept-Ranges: " . strlen($geheel));
header("Content-disposition: inline; filename=bekijk." . $_GET["header"]);
header("Expires: 0");
header("Cache-Control: private");
echo $geheel;
}
elseif($_GET["type"] == "download") // Download
{
// Header instellen en bestand versturen
header("Content-Type: " . $ctype);
header("Content-Length: " . strlen($geheel));
header("Content-Transfer-Encoding: binary");
header("Content-disposition: attachment; filename=download." . $_GET["header"]);
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
echo $geheel;
}
else // Check
echo "in_orde";
}
else
echo "error";
exit(); // Uitvoeren stoppen
?>
<?php // Opgegeven data geldig? if(($_GET["type"] == "check" or $_GET["type"] == "geef" or $_GET["type"] == "download") && is_numeric($_GET["file"]) && strlen($_GET["header"]) == 3 && strlen($_GET["md5"]) == 32) { // Content-type bepalen switch($_GET["header"]) { case "gif": $ctype = "image/gif"; break; case "png": $ctype = "image/png"; break; case "jpeg": case "jpg": $ctype = "image/jpg"; break; case "mp3": $ctype = "audio/mpeg"; break; case "wav": $ctype = "audio/x-wav"; break; case "wma": $ctype = "audio/x-ms-wma"; break; case "mpeg": case "mpg": case "mpe": $ctype = "video/mpeg"; break; case "mov": $ctype = "video/quicktime"; break; case "avi": $ctype = "video/x-msvideo"; break; case "wmv": $ctype = "video/x-ms-wmv"; break; default: $ctype = "application/force-download"; } $geheel = ""; $lezen = @opendir("file_" . $_GET["file"]); // Map openen while(false != ($inhoud = @readdir($lezen))) // Map inhoud inlezen { if($inhoud != "." && $inhoud != ".." && substr($inhoud, 0, 5) == "deel_") // Corect bestand? $geheel .= @file_get_contents("file_" . $_GET["file"] . "/" . $inhoud); // Toevoegen aan geheel } if(md5($geheel) != $_GET["md5"]) // Geldig bestand? elseif($_GET["type"] == "geef") // Bestand inlezen { ini_set("zlib.output_compression", "Off"); // Compressie afzetten // Header instellen en bestand versturen header("Content-Type: " . $ctype); header("Content-disposition: inline; filename=bekijk." . $_GET["header"]); header("Cache-Control: private"); } elseif($_GET["type"] == "download") // Download { // Header instellen en bestand versturen header("Content-Type: " . $ctype); header("Content-Transfer-Encoding: binary"); header("Content-disposition: attachment; filename=download." . $_GET["header"]); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); } else // Check } else exit(); // Uitvoeren stoppen ?>
Nu heb ik het probleem dat hij video bestanden niet wilt afspelen (de plugin voert een illegale actie uit) en muziekbestanden speelt hj maar voor een stukje af.
Het gekke is, dat de downloadlink wel perfect werkt. Kan iemand mij hier bij helpen. Thx anyway...
|