-1
次のスクリプトを使用して写真をダウンロードしていますが、もう機能しなくなりました。 is_file
の機能では、画像が存在する実際の画像の場所にファイルではないように、リダイレクトされます。私がそれを取ると、ダウンロードされますが、jpgにエラーがあります。イメージがそこにあるので確信していません(ダウンロードがなければあなたはそれにリダイレクトされます)。php forceダウンロードスクリプトはもう動作しません
<?php
ini_set('memory_limit', '-1');
$sourceFile = $_GET['file'];
$sourceFile = urldecode($sourceFile);
if(headers_sent())
die('Headers Sent');
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');
if (!is_file($sourceFile))
header('Location:'. $sourceFile) ;
$len = filesize($sourceFile);
$filename = basename($sourceFile);
$file_extension = strtolower(substr(strrchr($filename,"."),1));
switch($file_extension) {
case "pdf" : $ctype="application/pdf"; break;
case "exe" : $ctype="application/octet-stream"; break;
case "zip" : $ctype="application/zip"; break;
case "doc" : $ctype="application/msword"; break;
case "xls" : $ctype="application/vnd.ms-excel"; break;
case "ppt" : $ctype="application/vnd.ms-powerpoint"; break;
case ".docx": $ctype="application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break;
case ".pptx": $ctype="application/vnd.openxmlformats-officedocument.presentationml.presentation"; break;
case ".xlsx": $ctype="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break;
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 "mpeg" :
case "mpg" :
case "mpe" : $ctype="video/mpeg"; break;
case "mov" : $ctype="video/quicktime"; break;
case "avi" : $ctype="video/x-msvideo"; break;
case "mp4" : $ctype="video/mpeg"; break;
//The following are for extensions that shouldn't be downloaded
case "php" :
case "css" :
case "js" :
case "htm" :
case "html" :
case "txt" : die("<b>Cannot be used for ". $file_extension ." files!</b>"); break;
default : $ctype="application/force-download";
}
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");
header("Content-Type: $ctype");
$header="Content-Disposition: attachment; filename=".$filename.";";
header($header);
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$len);
echo file_get_contents($sourceFile);
exit;
1.)Wordpressは何をしているのですか?ファイルの権限は変更されていません。2.)それ以上のファイルサイズは1.1 MBに似ています。 3.)外来文字は使用せず、urldecode()を使用してください。4.)私が使用するパスはhttp://example.com/wp-content/02/theimage.jpgに似ています.Jpegに関しては、 "The file" Ec_4K5A0220と言います。 jpg "が空であるため開けませんでした。 – Packy
@Packyあなたは画像の1つを提供できますか?私が言ったように、コードに間違いがないように見える。だから、それはサーバー設定のものか画像そのもののどちらかです。 –
私は何を考えていたのですか?画像をダウンロードするには、古いファッションのリンクをクリックし、右クリックしてダウンロードするだけです。 – Packy