2016-08-02 97 views
0

我正在用Php an Angular構建一個項目,我可以將文件上傳到本地數據庫,並且可以檢索文件信息。我不知道如何檢索文件本身並將其下載到我的電腦。有人可以幫忙嗎? 在數據庫 - 柱/類型= ID-INT,名稱VARCHAR,MIME-LONGBLOB,尺寸biginet,數據MEDIUMBLOB,創建-日期時間如何下載上傳的文件?

腓用於檢索文件的詳細信息:

header('Content-Type: text/html; charset=utf-8'); 

    $connection = mysqli_connect('localhost', 'root', '', 'hamatkin'); 

    mysqli_query($connection, "SET character_set_client = utf8"); 
    mysqli_query($connection, "SET character_set_connection = utf8"); 
    mysqli_query($connection, "SET character_set_results = utf8"); 

    if (!$connection) { 
    die("couldnt connect".mysqli_error); 
    } 

    $query = "SELECT id, name, created FROM file"; 
    $queryResult = $connection->query($query); 

    $queryResult2 = array(); 

    if ($queryResult === false) { 
    die($connection->error); 
    } 

    if ($queryResult->num_rows > 0) { 
    while ($row = $queryResult->fetch_assoc()) { 
     $queryResult2[] = $row; 
    } 
    } 

    $queryResult3 = json_encode($queryResult2); 

    echo json_encode($queryResult2); 

控制器:

「use strict」;

angular.module('dataSystem').controller('allPriceOffersCtrl', function($scope,$route,$location,$http) { 
    $http({method:'GET', url:'api/customers-tab/get-all-priceOffers.php/'}) 
     .then(function(response) { 
     var arr = response.data; 
     $scope.files = arr; 
     }) 
     // This will log you the error code and trace, if there is an error. 
     .catch(function(err) { 
     console.log('err', err) 
     }); 

}); 

HTML:

<div class="table-responsive"> 
    <table class="customer-list table table-striped"> 
    <thead> 
     <tr> 
     <!-- <th>#</th> --> 
     <th class="Column-Header"> מספר קובץ הצעת מחיר</th> 
     <th class="Column-Header">שם הקובץ</th> 
     <th class="Column-Header">תאריך</th> 

     </tr> 
    </thead> 
    <tbody> 
     <tr ng-repeat="x in files "> 
     <!-- <td>{{$index + 1}}</td> --> 
     <td>{{ x.id}}</td> 
     <td>{{ x.name}}</td> 
     <td> {{ x.created}} </td> 
     </tr> 
    </tbody> 
    </table> 
</div> 
+0

Your將文件存儲在數據庫中的blob元素? –

+0

@GeeK是不是很好?對不起,我是新來的...你有什麼建議? – tanyaa

+0

我希望我的回答有幫助,如果您需要更多詳細信息,請告知我。 –

回答

1

更好的方法是將文件上傳到服務器,並添加的.htaccess限制訪問,文件重命名爲序列號,以便兩個文件具有相同的名稱永不覆蓋並存儲包含filename.extension(網站的相對路徑),serialNo的文件的路徑。作爲文件的id和實名(帶有擴展名)。根據需要填充路徑並在下載之前重命名。

This Example is some related relevant

+0

對不起,我不明白該怎麼做.... – tanyaa

+1

http://www.php-mysql-tutorial.com/wikis/php-tutorial/uploading-files-to-the-server-using -php.aspx 閱讀這個例子,它會更詳細地解釋,如果你不明白,給我你的數據庫結構,我會自己解釋它。 –

+0

我們可以去聊天嗎? – tanyaa