Antwort
 
Themen-Optionen
Alt 14.05.2006, 19:29 Nach oben    #1
Benutzer
 
Registriert seit: 25.02.2006
Beiträge: 54
Standard PDF in DB speichern oder ?

Hi!

Ich habe ein Problem und zwar möchte ich gerne ein PDF Dokument in der Datenbank speichern.

1. Wie kann ich denn das Dokument dort speichern?
2. Ich hatte bis jetzt irgendwie noch nie so viel Glück mit Upload Scripten, was muss man denn da so beachten?

Das Ziel ist eben, nur demjenigem das Dokument anzeigen zu lassen, dem es erlaubt ist durch einen Code etc. Also es soll niemand anderes ansehen können.
Gibt es auch eine andere sichere Möglichkeit dies zu machen ohne das PDF-Dokument in der Datenbank abzuspeichern, sondern z.B. in einem Ordner?

Danke schonmal für eure Anregungen!

Grüße
julien

Ps.: Es handelt sich dann jeweils immer schon um ein "fertiges" PDF-Dokument, was vom lokalen Rechner hochgeladen werden soll.
julien ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.05.2006, 19:44 Nach oben    #2
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Hallo,

Zitat:
Zitat von julien
möchte ich gerne ein PDF Dokument in der Datenbank speichern.
1. Wie kann ich denn das Dokument dort speichern?
Generell ist es möglich Dateien in Datenbanken zu speichern. Das erst einmal im Voraus.
Dabei scheint es mir jetzt egal zu sein, ob man Bilder oder PDF-Dateien in der Datenbank ablegen will. Demnach verweise ich mal auf diesen Artikel hier:

16.3. Ist es sinnvoll, Bilder in einer Datenbank abzulegen?
http://php-faq.de/q/q-db-blob.html

Generell würde ich also erstmal davon abraten die PDF-Dateien in der Datenbank zu speichern.

Zitat:
Zitat von julien
Das Ziel ist eben, nur demjenigem das Dokument anzeigen zu lassen, dem es erlaubt ist durch einen Code etc. Also es soll niemand anderes ansehen können.
Jut. Das ist ja simpel zu realisieren. Du erstellst einen passwortgeschützten Bereich, in dem sich die User anmelden müssen. Das wäre dann dein "Code", der zur Überprüfung der Rechte benötigt wird.

Hat ein User die nötigen Rechte, so hat er die Möglichkeit sich die PDF-Datei anzeigen zu lassen.
Das würde ich so lösen, dass die Daten, die in der Datei angezeigt werden sollen in der Datenbank gespeichert werden, die eigentliche PDF-Datei dann aber mittels der PDF-Funktionen "on thy fly" erstellt wird.

Das ist natürlich jetzt etwas spekulativ, da ich nicht genau weiß, was das für Daten sind oder ob du die PDF-Datei nicht von den Mitgliedern hochladen lassen willst.
Könnte ja aufgrund der Frage hier sein
Zitat:
Zitat von julien
Upload Scripten, was muss man denn da so beachten?
---
Oh Mann ... jetzt schreib ich hier und les erst jetzt das "ps"
Zitat:
Zitat von julien
Ps.: Es handelt sich dann jeweils immer schon um ein "fertiges" PDF-Dokument, was vom lokalen Rechner hochgeladen werden soll.

Jut, also dann nochmal .
Dann gibt es ja z.B. die Möglichkeit eben doch den Datentyp BLOB (siehe MySQL-Handbuch) zu verwenden (*klick*) oder eine Tabelle anzulegen, die die hochgeladenen PDF-Dateien verwaltet und sie explizit und eindeutig einem User zuteilt.

Beispielsweise so
Code:
pdfID | userID | filename

1 | 23 | testfile.pdf
Die Dateien werden alle in den Ordner "uploads/pdf" gespeichert, so dass der Pfad leicht zu ermitteln ist.
Will ein User nun eine Datei einsehen, so geht das nur, wenn die Datei seiner UserID zugewiesen ist.

So als Denkanstoß .. gibt sicherlich auch elegantere Lösungen, allerdings finde ich die hier jetzt gerade ganz nett

Grüße, Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.05.2006, 20:01 Nach oben    #3
Benutzer
 
Registriert seit: 25.02.2006
Beiträge: 54
Standard

Hi!
Zitat:
Zitat von Ben
---
Oh Mann ... jetzt schreib ich hier und les erst jetzt das "ps"
Zitat:
Zitat von julien
Ps.: Es handelt sich dann jeweils immer schon um ein "fertiges" PDF-Dokument, was vom lokalen Rechner hochgeladen werden soll.
Sorry mein Fehler!

Zitat:
Zitat von Ben
Jut, also dann nochmal .
Dann gibt es ja z.B. die Möglichkeit eben doch den Datentyp BLOB (siehe MySQL-Handbuch) zu verwenden (*klick*)
Das habe ich auch gefunden gehabt allerdings bekomme ich folgende Fehlermeldung und weiß ehrlich gesagt nicht, was ich machen muss um das zu korrigieren:

Code:
Warning: fopen(:( open_basedir restriction in effect.
File(/home/www/web61/phptmp/phpH4I6jl) is not within the allowed path(s:(
(/home/www/web61/html) in /home/www/web61/html/System/ais/hochladen.php on line 23

Warning: fopen(/home/www/web61/phptmp/phpH4I6jl:(
failed to open stream: Operation not permitted in
/home/www/web61/html/System/ais/hochladen.php on line 23

Warning: filesize(:( open_basedir restriction in effect.
File(/home/www/web61/phptmp/phpH4I6jl) is not within the allowed path(s:(
(/home/www/web61/html) in /home/www/web61/html/System/ais/hochladen.php on line 23

Warning: fread(:(supplied argument is not a valid stream resource in
/home/www/web61/html/System/ais/hochladen.php on line 23
Line 23:
PHP-Code:
$data addslashes(fread(fopen($form_data"r"), filesize($form_data))); 
Zitat:
Zitat von Ben
oder eine Tabelle anzulegen, die die hochgeladenen PDF-Dateien verwaltet und sie explizit und eindeutig einem User zuteilt.

Beispielsweise so
Code:
pdfID | userID | filename

1 | 23 | testfile.pdf
Die Dateien werden alle in den Ordner "uploads/pdf" gespeichert, so dass der Pfad leicht zu ermitteln ist.
Will ein User nun eine Datei einsehen, so geht das nur, wenn die Datei seiner UserID zugewiesen ist.
Dass hatte ich mir auch schon gedacht, ich denke nur, dass diese Methode nicht so sicher ist bzw. man hier leichter das "System" überlisten kann und somit auch andere Dateien sehen kann.

Zitat:
Zitat von Ben
So als Denkanstoß .. gibt sicherlich auch elegantere Lösungen, allerdings finde ich die hier jetzt gerade ganz nett

Grüße, Ben.
Danke, fand deine Denkanstöße gut!

Grüße
julien
julien ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.05.2006, 20:01 Nach oben    #4
Jay
Gast
 
Beiträge: n/a
Standard

Naja wenn du Dateien in Datenbanken speicherst so ist die Perfomance ziemlich im Arsch, weil Datenbank dafür einfach nicht geeignet sind.

Es wäre möglich mittels .htaccess und .htpassword einen Verzeichnisschutz zu implementieren. Du könntest zB für jeden User einen eigenen Ordner anlegen und diesen per htaccess schützen. Die htaccess verbindet sich mit deiner DB und Benutzertabelle und fragt Benutzername und Passwort ab.

Die beste Lösung wäre imho wenn du alle Dateien in einem von außen nicht zugänglichen Ordner ablegst zB.
public_html ist der Root Ordner des webservers und die dateien legst du dann in einen ordner außerhalb von public_html zB pdfvault

Also:

./public_html
index.php
xyz.html
./pdfvault
asdf.pdf
jklö.pdf

Via PHP Script checkst du dann die Berechtigungen für jede Datei und zeigst sie dann je nachdem an.

MfG Fat Tony
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.05.2006, 20:07 Nach oben    #5
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Zitat:
Zitat von Fat Tony
Die beste Lösung wäre imho wenn du alle Dateien in einem von außen nicht zugänglichen Ordner ablegst
[..]
Via PHP Script checkst du dann die Berechtigungen für jede Datei und zeigst sie dann je nachdem an.
Genau. So meinte ich das natürlich auch .. habe in meinem Beitrag oben nur nicht erwähnt, dass natürlich sichergestellt werden muss, dass man nicht einfach so an die Datei rankommt www.example.com/uploads/pdf/testfile.pdf

Sollte aber auch klar sein.

Grüße, Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.05.2006, 20:12 Nach oben    #6
Benutzer
 
Registriert seit: 25.02.2006
Beiträge: 54
Standard

Zitat:
Zitat von Fat Tony
Die beste Lösung wäre imho wenn du alle Dateien in einem von außen nicht zugänglichen Ordner ablegst zB.
public_html ist der Root Ordner des webservers und die dateien legst du dann in einen ordner außerhalb von public_html zB pdfvault

Also:

./public_html
index.php
xyz.html
./pdfvault
asdf.pdf
jklö.pdf

Via PHP Script checkst du dann die Berechtigungen für jede Datei und zeigst sie dann je nachdem an.

MfG Fat Tony
Hi Fat Tony, (netter Name )

die Variante hört sich gut an.

Wie kann ich denn ein nicht öffentlichen Ordner erstellen bzw. wie darauf zugreifen?
Ich habe ein Webspaceaccount mit Confixx und da kann ich unter "/" kein Verzeichnis anlegen.

Ich verwende ein PHP-Memberscript, dass geht doch auch anstatt hier ".htaccess" zu nehmen oder?

Grüße
julien
julien ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.05.2006, 20:13 Nach oben    #7
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Zitat:
Zitat von julien
Ich verwende ein PHP-Memberscript, dass geht doch auch anstatt hier ".htaccess" zu nehmen oder?
Teste es doch einfach aus.

Kannst du ohne die einzuloggen auf eine Datei zugreifen, auf die du eigentlich keinen Zugriff haben dürftest?
Wenn ja .. dann reicht das Skript nicht!
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.05.2006, 20:18 Nach oben    #8
Jay
Gast
 
Beiträge: n/a
Standard

Zitat:
Wie kann ich denn ein nicht öffentlichen Ordner erstellen bzw. wie darauf zugreifen?
Einfach einen Ordner außerhalb des root verzeichnises.

Der Zugriff ist kein Problem.
Beispiel:
Dein Script liegt im Root Ordner und dein Ordner mit den PDF Dateien liegt in der gleichen Ebene wie der Root Ordner, so kannst du zB mit

if (file_exists ("../pdffolder/file.pdf"))

überprüfen ob die Datei existiert.

MfG Fat Tony
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.05.2006, 20:18 Nach oben    #9
Benutzer
 
Registriert seit: 25.02.2006
Beiträge: 54
Standard

Zitat:
Zitat von Ben
Zitat:
Zitat von julien
Ich verwende ein PHP-Memberscript, dass geht doch auch anstatt hier ".htaccess" zu nehmen oder?
Teste es doch einfach aus.

Kannst du ohne die einzuloggen auf eine Datei zugreifen, auf die du eigentlich keinen Zugriff haben dürftest?
Wenn ja .. dann reicht das Skript nicht!
*grins* - dann werde ich es mal testen...

Ich hatte auf der Suche auch eine Verbinung von htaccess & php etc. gesehen und war gerade etwas verunsichert...

Aber hat jemand Erfahrung mit nicht öffentlichen Ordnern und Confixx?
(also Zugriff etc. ?)
-> Okay hat sich gerade überschnitten - wenn dass so einfach geht, probier ich es auch einfach mal aus!

Danke für eure tatkräftige und schnelle Unterstützung!

Grüße
julien
julien ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.05.2006, 20:26 Nach oben    #10
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Frag doch mal deinen Provider. Der hat doch sicherlich eine FAQ, wo man sowas nachschlagen kann.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Anmeldeseite]Firefox will Passwort speichern WarrenFaith HTML, XML und CSS 13 10.09.2007 11:54
FPDF / eMail mit PDF verschicken Error123 PEAR, PECL und Frameworks 11 16.08.2007 16:51
DAtensatz in Variable Speichern und in eine Tabbele speichern kampfgnom Datenbanken 11 10.12.2006 20:45
php5 pdf klasse? ex³ PHP-Programmierung 4 19.02.2006 12:41
Speichern von Einstellungen - Welche API? pago Allgemeine Java-Programmierung 4 04.11.2005 20:25


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:00 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44