2017-01-05 37 views
-2

我寫了php腳本從管理面板上傳文件並下載給用戶。 上傳成功完成,但下載文件後無法閱讀。如果它是一個圖像文件或PDF文件。上傳的文件被複制到xamp/htdocs/myproject/admin/documents。並將路徑存儲到mysql數據庫。當我試圖下載它時,上傳的文件和下載的文件的文件大小不同,並且無法讀取。上傳的文件無法在PHP下載後讀取

上載腳本

if (isset($_POST['submit'])){ 
$name = $_FILES['myfile']['name']; 
$tmp_name = $_FILES['myfile']['tmp_name']; 

if ($name) { 
    $location = "documents/$name"; 
    move_uploaded_file($tmp_name, $location); 
    $query = mysqli_query($con,"INSERT INTO posts (name,path) VALUES ('$location')"); 
} 
+0

上傳文件並將路徑保存到數據庫後,你是否正確文件擴展名 ?如果是,那麼你讓客戶端下載文件?你如何讓用戶下載這些文件。因爲你需要有正確的頭 – webDev

+8

一件事,你有2列,但只有1個值'(名稱,路徑)VALUES(「$位置」)' –

+0

這個問題實在太不清楚 –

回答

0

謝謝大家對我的幫助。我昨天對我的腳本進行了更改,它正在工作,但問題是,當我嘗試將其添加到我的項目中時,它無法正常工作。

我上傳腳本(它是在myproject的/管理/ application.php writen)

if (isset($_POST['submit'])){ 
    $name = $_FILES['myfile']['name']; 
    $tmp_name = $_FILES['myfile']['tmp_name']; 

if ($name) { 
    $location = "documents/$name"; 
    move_uploaded_file($tmp_name, $location); 
    $query = mysqli_query($con,"INSERT INTO posts (name,path) VALUES ('$location')"); 
} 

的download.php(寫在myproject的/的download.php)

<?php 
include('includes/connect.php'); 
    if (isset($_GET['dow'])) { 
    $path = $_GET['dow']; 
     $res = mysqli_query("SELECT * FROM posts WHERE path = '$path'"); 

header('Content-Description: File Transfer'); 
header('Content-Type: application/force-download'); 
header("Content-Disposition: attachment; filename=\"" . basename($path) . "\";"); 
header('Content-Transfer-Encoding: binary'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate'); 
header('Pragma: public'); 
header('Content-Length: ' . filesize($path)); 
ob_clean(); 
flush(); 
readfile($path); //showing the path to the server where the file is to be download 
exit; 
    } 


?> 

鏈接腳本download.php b(寫在myproject/viewprofile.php中)

<?php 
    include('includes/connect.php'); 

    $sql = "SELECT * FROM posts"; 
    $res = mysqli_query($con, $sql); 






    $path = $row['post_path']; 

    echo "<a href='download.php?dow=$path' class='btn btn-dark btn-theme-colored btn-flat mr-5' style='width:100%; margin-top:5px;'> DOWNLOAD RESUME </a> <br>"; 

?>