サイトからいくつかのファイルをダウンロードしようとしていますが、引き続き問題が発生します。最初は空のファイルをダウンロードしていましたが、それはコンテンツタイプが原因だと思いました。SOの誰かが私が現在行っているアプリケーション/オクテットストリームを提案しました。その後、実際にファイルを見つける際に多くの問題が発生しました。いくつかのテストケースの後、それは空白の問題でした。それを修正し(「」を入れて)、空のファイルを再度ダウンロードします。
初歩的なコードですが、誰かが助けてくれることを願っています:
<?php
$filename = $_GET['filename'];
$dir = "training/trainingDocuments/";
$downloadFilename = $dir.$filename;
//ftp://site.com///training/trainingDocuments/8%20-%20SUBSEA%20QUESTIONS__51f034ab37a8e.xls
//$downloadFilename = preg_replace('/\s/', '%', $downloadFilename);
//8 - SUBSEA QUESTIONS__51f034ab37a8e.xls
//if the filename exists
if(is_file($downloadFilename)){
//send the headers
header('Pragma: public'); //FIX IE6 Content-Disposition
header('Content-DEscription: File Transfer');
header('Content-Transder-Encoding: binary');
header(sprintf('Content-Length: %u', filesize($downloadFilename)));
header('Content-type: application/octet-stream');
header("Content-Disposition: attachment; filename=".$downloadFilename."");
}else{
//file doesn't exist
echo "File no exist\n\n";
echo $downloadFilename;
}//end if file exists