2
我試圖建立一個下載頁面,其獲取文件ID和從數據庫下載代碼(ReadFile的)給了我一個空或損壞的文件
它還挺工作中獲取文件信息生成下載鏈接!出於某種原因,我從這個頁面獲得一個文件,但它不是一個真正的文件! 例如,當我的圖片ID發送到這個頁面的圖片將被下載,但它不會打開,它的大小真的比什麼真的是
這裏小是我的代碼
<?php
require_once('class/comon.php');
require_once('class/db.php');
$file_id = isset($_GET['id']) && (int)$_GET['id'] != 0 ? (int)$_GET['id'] : exit;
$file = comon::get_fileinfo('files' , 'id' , $file_id);
if(!$file) exit;
foreach($file as $file){
$location = $file['location'];
$filename = $file['file_name'];
}
$ext = end(explode('.' , $filename));
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private', false);
header('Content-Type: application/'.$ext);
header('Content-Disposition: attachment; filename="'. basename($filename) . '";');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize('http://localhost/Lancer/attach/'.$location.'/'.$filename));
readfile('http://localhost/Lancer/attach/'.$location.'/'.$filename);
?>
我已經印刷頁面上的文件路徑
echo 'localhost/Lancer/attach/'.$location.'/'.$filename;
,然後我把輸出的URL,並將其顯示圖像,使不能是問題
thanx我在localhost之前添加了'http://',現在我得到一個0大小的空文件!仍然當我打印出路徑並將輸出放在url上時,它顯示了picure – max
@max,在發送Content-Length頭時,還需要更正'filesize()'調用中的路徑。 – jasonbar
thanx實際上我發現我應該只使用文件大小的相對路徑來工作,它現在正在工作,但出於某種原因它不會顯示圖片,它會在文本文件中添加一些奇怪的字符,但zip文件仍然可以! – max