![]() |
Lieber kikakater: Tschuldigung, aber das ist ein Blödsinn.
Mit dem file-Schema (file:.....) kann man nur Files auf dem lokalen Rechner, auf dem der Browser läuft, referenzieren. Eine "absoluter"-URI besteht aus "<scheme>:<scheme-specific-part>", also bei http aus "http://Servername_oder_IP-Adresse/Pfad_zu_Datei/Datei", für eine gif-Datei am WCM-WebServer zum Beipiel "http://www.wcm.at/bilder/200205/0ti4200.jpg". Wenn die HTML-Datei, in der ich das Bild einbauen will, im root-Verzeichnis des WebServers steht, reicht bei vorigem Beispiel "bilder/200205/0ti4200.jpg", oder wenn ich im Verzeichnis "html" bin ein "../bilder/200205/0ti4200.jpg", um auf das Bild über eine relative URI zuzugreifen. Siehe auch http://www.rfc-editor.org/rfc/rfc1630.txt und http://www.rfc-editor.org/rfc/rfc2396.txt |
Gelöst!
Unter http://www.phpbuilder.com/columns/fl...3?print_mode=1 habe ich das für mich passende im Quelltext gefunden :)
danke Euch allen für die aufgebrachte Geduld mit mir "PHP-mySQL-Dummy"! :lol: |
Filetypen unter "Datei auswählen" beschränken
...obwohl ich bereits google bemühte, wurde ich leider nicht fündig, darum nochmals hier:
Dies ist natürlich nur eine kleine optische Korrektur - Wie kann ich meinem Dateiauswahlfeld mitteilen, dass der eingebenden Person beim Auswählen der upload-Datei z.B. nur Dateien vom Typ *.jpg und *.gif angezeigt werden sollen? danke! |
AFAIK ist das mit HTML-Mitteln nicht möglich.
|
spät aber...
ich muss mal die provokante frage stellen:
wozu soll man eine binär-datei in eine datenbank reinwürgen, um sie dann mit header und allem drum un dran wieder mühsam auszulesen, wenn es dafür auch ein altes aber gutes ding namens "filesystem" gibt. kikakater hats ja schon angesprochen. dafür ist die datenbank nicht gedacht. dafür wurde das filesystem erfunden. man lege also in der datenbank ein feld namens "dateiname" und meinetwegen auch noch irgendwelche metafelder an, und speichere das bild als bild, wie es sich gehört. my 2 cents roland |
Der Grund um so etwas zu tun heißt Datenkapselung, Betriebssystemunabhängigkeit, Verbergen von Daten mittels SQL im Gegensatz zu Java Servlets und Dateizugriff. Einfacher ist es für homogene Systeme die Bilder vom Dateisystem aus zu laden und sich derart des Streßes mit der Verwaltung der Bilder in der Datenbank zu entledigen.
|
ich folge Euch und möchte mein Bild im filesystem ablegen...
Liebe Gemeinde,
nachdem das Projekt länger geruht hat, wird es wieder aktuell... Nun habe ich Euren Rat beherzigt und möchte das Bild nicht in die DB reinquetschen, sondern ins Filesystem legen: NUR: Auch nach GENAUEM Lesens der Tips von "_m3" bringe ich das Bild nicht ins Filesystem??? :( Hier mein Ansatz: Ich habe meine Eingabefelder in einem FORM-Feld (für die Eingabe der Daten und des Bildes) Auszug daraus: Code:
<INPUT type="hidden" name="MAX_FILE_SIZE" value="62000">Ich möchte nun, dass das lokale Bild ins Dateisystem meines SQL-servers ins Unterverzeichnis "BILDER" übertragen wird: Dieser Ordner heisst in meiner lokalen Testumgebung "H:\APACHE\mysql\data\VDB\Bilder" (Die Datenbank selbst hat den Namen "VDB" bzw. der für mich relevante Table "adressen", der halt im Ordner "H:\APACHE\mysql\data\VDB\" liegt) Im bereits oben zitierten PHP habe ich folgende Zeilen zwecks Übergabe der Daten eingebaut: Code:
if ($submit) {Es erscheint aber auch keine Fehlermeldung gemäß "Possible file upload attack", der Bildname selbst ist natürlich in der Datenbank aufgenommen... Danke für Eure Hilfe!!! |
Kommt er überhaupt in die
if ($submit) { hinein - sprich ist $submit TRUE? Weiters solltest Du den Rückgabewert von copy($HTTP_POST_FILES['userfile']['tmp_name'], "/Bilder"); abfangen und entsprechend auswerten. Und "/Bilder" sollte wohl eher dem kompletten Pfad inkl. Dateinamen das Files enstsprechen, wo du es hinkopieren willst. |
Es funktioniert fast:
Das submit passt - ich habe vergessen, den Dateinamen anzufügen: {copy($HTTP_POST_FILES['userfile']['tmp_name'], "H:/APACHE/mysql/data/VDB/Bilder/$Bild") funktioniert... Aber: mit "/bilder/$Bild" geht es nicht - gibt es da eine environment-Variable, da mir folgende Fehlermeldung kommt??? Warning: Unable to create '/bilder/testfoto.jpg': No such file or directory in h:\apache\apache\htdocs\eingabe.php on line 24 die sich auf den Pfad der PHP-Maske bezieht? danke! |
"/bilder/$Bild" ist Unix-Notation. Damit speichert er das Bild Im Verzeichnis "bilder", das auf der ersten Eben unterhalb von "/" (so wie tmp, usr, ...) liegt, ab.
Entweder gibst Du den Pfad relativ zur Lokation des Scripts an "../../mysql/data/VDB/bilder/$Bild" oder eben ansolut "H:/APACHE/mysql/data/VDB/Bilder/$Bild". Alles klar? |
| Alle Zeitangaben in WEZ +2. Es ist jetzt 11:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag