W Internecie nie znalazłem informacji, które mógłbym wykorzystać do tego celu.


PLIK HTML (ten z obrazkiem)
<html>
<head></head>
<body>
<a href="lapti.php?d=logo.jpg"><img border="0" alt="" src="logo.jpg"></a>
</body>
</html>
PLIK PHP (ten z linku - lapti.php)
<?php
$download = $_GET['d'];
header('Content-type: image/jpg');
header('Content-Disposition: attachment; filename="'.$download.'"');
?>
PLIK PHP (ten z linku - lapti.php)
<?php
$download = $_GET['d'];
header('Content-type: image/jpg');
header('Content-Disposition: attachment; filename="'.$download.'"');
readfile($download);
?>
<?php
$download = $_GET['d'];
$odczyt = pathinfo($download);
$ext = $odczyt['extension'];
if($ext == "gif" or $ext == "jpg") {
header('Content-type: image/jpg');
header('Content-Disposition: attachment; filename="'.$download.'"');
readfile($download);
}
else
{ echo "nie można pobrać pliku";}
?> $p = "plik.jpg"; // czyli do zmiennej $p musi się wpisywać plik do pobrania ten jpg to przykład
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');
$file_extension = strtolower(substr(strrchr($p,"."),1));
switch( $file_extension )
{
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "rar": $ctype="application/rar"; break;
case "zip": $ctype="application/zip"; break;
case "docx":
case "doc": $ctype="application/msword"; break;
case "xlsx":
case "xls": $ctype="application/vnd.ms-excel"; break;
case "pptx":
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=\"".basename($p)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($p));
readfile("$p");
exit();Tutaj chyba masz niepotrzebnie " ".bartekmedon napisał(a):readfile("$p");
No właśnie to rozwiązałem w ostatnim podejściu...bartekmedon napisał(a):Pamiętaj aby filtrować pliki,
<?php
$download = $_GET['d'];
$odczyt = pathinfo($download);
$ext = strtolower($odczyt['extension']);
if($ext == "gif" or $ext == "jpg" or $ext == "jpeg" or $ext == "png" ) {
switch ($ext)
{
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
case "gif": $ctype="image/gif"; break;
default: $ctype="application/force-download";
}
header('Content-type: '.$ctype);
header('Content-Disposition: attachment; filename="'.$download.'"');
readfile($download);
}
else
{ echo "nie można pobrać pliku";}
?>
bartekmedon napisał(a):$file_extension = strtolower(substr(strrchr($p,"."),1));
lapti napisał(a):Tutaj chyba masz niepotrzebnie " ".
lapti napisał(a):Dodatkowo Twój pomysł Bartku ma wg. mnie wadę, iż nie radzi sobie z: bardzo.fajnymi.nazwami.jpg
bartekmedon napisał(a):Radzi sobie radzi
Użytkownicy przeglądający to forum: Bing [Bot] oraz 1 gość