2016-08-02 16 views
0

Ich baue ein Projekt mit PHP und Angular, ich kann Dateien in die lokale Datenbank hochladen und ich kann Dateien Informationen abrufen. Ich weiß nicht, wie ich die Datei selbst abrufen und auf meinen Computer herunterladen kann. Kann mir bitte jemand helfen? in Datenbank - Spalte/type = id-int, name-varchar, mime-LONGBLOB, größen biginet, daten MEDIUMBLOB erstellt-DatetimeWie kann ich hochgeladene Dateien herunterladen?

Php für Details Abrufen von Dateien:

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); 

Controller:

"verwenden Sie streng";

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

Ihre Speichern der Dateien in der Datenbank als BLOB-Elemente? –

+0

@GeeK ist das nicht gut? Es tut mir leid, dass ich neu dabei bin ... was schlägst du vor? – tanyaa

+0

Ich hoffe meine Antwort helfen, lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. –

Antwort

1

Eine bessere Lösung ist es, die Dateien auf dem Server zu laden und eine .htaccess in dem Zugang zu beschränken, benennen Sie die Datei auf eine Seriennummer so zwei Dateien mit demselben Namen nie überschreiben und speichern Sie den Pfad der Datei infilding Dateiname.Extension (relativer Pfad von der Website), SerialNo. als ID und Real-Name der Datei (mit Erweiterung). Füllen Sie den Pfad wie gewünscht auf und benennen Sie ihn vor dem Herunterladen um.

Diese Example ist, was einige relevante

+0

Es tut mir leid, ich verstehe nicht genau, was zu tun ist. – tanyaa

+1

http://www.php-mysql-tutorial.com/wikis/php-tutorial/uploading-files-to-the-server-using -php.aspx Lesen Sie dieses Beispiel, es wird in weiteren Einzelheiten erklären, noch, wenn Sie nicht verstehen, geben Sie mir Ihre Datenbankstruktur und ich werde es selbst erklären. –

+0

Können wir zum Chat gehen? – tanyaa

Verwandte Themen