2014-12-08 102 views
-2

下載以前上傳到數據庫的文件時出現問題,而不是下載計算機下載的「download.php」文件,該文件是要下載的腳本。我使用某種標識符,如'download.php?id = 1'來選擇和下載特定文件,是的,我知道這個代碼可能被棄用,並且不安全。PHP,MySQL - 無法從數據庫下載上傳的文件

這是我的download.php類型:

<?php 
session_start(); 
include("connect.php"); 
$namatemp=$_SESSION['nama']; 
$nistemp=$_SESSION['nislogin']; 
$kelastemp=$_SESSION['kelas']; 
$mapeltemp=$_SESSION['mapeltemp']; 
$chapteridtemp=$_SESSION['chapteridtemp']; 

$query=("SELECT mime, name, size, data FROM file WHERE uploader='$namatemp' AND chapter='$chapteridtemp')"); 
$result=mysql_query($query); 
$row=mysql_fetch_array($result); 
if($row=1) { 
header('Content-Type: '.$row['mime']); 
header('Content-Length: '.$row['size']); 
header('Content-Disposition: attachment; filename='.$row['name']); 
echo $row['name']; 
} else { 
    echo "You have not uploaded such file."; 
} 
?> 
+0

你不輸出文件 – 2014-12-08 02:47:38

+0

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – esqew 2014-12-08 02:49:13

+1

plus嘗試刪除多餘的'chapter ='$ chapteridtemp')'查詢中的右括號。 if($ row = 1){'賦值而不是比較 – Ghost 2014-12-08 02:49:28

回答

0

您可能要添加:

readfile($row['name']); 

然而,我想你最好在頁面中檢查該文件存在重定向到一個下載頁面,如果它不存在,則打印該錯誤,因爲我不太確定頭部是否可以嵌套在if語句中。當然,我可能是錯的,因爲這樣說而得到低估。

+0

看看[鬼的評論](http://stackoverflow.com/questions/27350609/php-mysql-trouble-downloading-uploaded-file-from-database#comment43155627_27350609),然後再看OP的代碼,*非常仔細* 。 – 2014-12-08 02:55:20

+0

@ Fred-ii- Thankyou。我會看看它。 – Verhaeren 2014-12-08 02:57:21

+0

不客氣。 – 2014-12-08 03:00:18