![]() |
![]() |
|
|
|||||||
| Programmierung Rat & Tat für Programmierer |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
#1 |
|
Elite
![]() |
Liebe Gemeinde,
schön langsdam kommt meine Datenbank auf Touren (endlich harmonieren der Apache mit MySQL & PHP) - danke wegen des Links zu www.NuSphere.com Die Voraussetzungen: 1. Datenbank unter mySQL erfolgreich angelegt 2. dazu eine Tabelle - dies beinhaltet die "VARCHAR"-Felder wie Name, Adresse, etc. UND ein Feld namens "Bild" vom Typ BLOB Ich habe für PHP im Internet eine Eingabemaske gefunden - http://www.blindschleiche.de/Artikel...ysql-einf.php3 - und angepasst, wo eben Daten eingegeben werden können, die dann in meine Datenbank wandern. NUR: Wie ermögliche ich die Übernahme eines Bildes? (Es wird im Datensatz nicht das Bild als BLOB eingefügt, sondern nur die Ladeadresse - z.B.: C:\Bilder\Haus.jpg ) Hier ein Auszug aus dem PHP, wo die Dateneingabe passiert, das Problem mit dem BILD aber nicht klappt: . . . <form action= <? echo $PHP_SELF ?>> <pre> <input type=hidden name=funktion value= <? echo $funktion ?>> Kontaktperson: <input type=text name=K_person value= <? echo $K_person ?>> Strasse mit Hausnummer: <input type=text name=Str value= <? echo $Str ?>> Ort: <input type=text name=Ort value= <? echo $Ort ?>> Bild anfügen: <input type="hidden" name="MAX_FILE_SIZE" value="2097152"> <input type="file" class="bginput" name=Bild> <input type=submit value= <? echo $funktion ?>> </pre> </form> . . . Herzlichen Dank für Eure Mühe!!!
____________________________________
Liebe Grüsse Michi |
|
|
|
|
|
#2 |
|
Inventar
![]() Registriert seit: 28.12.2000
Beiträge: 1.693
|
Mir fällt nur auf daß das name=Bild in deinem Formular
nicht in Anführungszeichen steht name="Bild"
____________________________________
Nordick-Wogging Dumm-ness boomt Ihr Fengshui Berater Eurofighter abfangen ! |
|
|
|
|
|
#3 |
|
Inventar
![]() Registriert seit: 24.09.2001
Beiträge: 7.335
|
Das Bild musst Du extra behandeln, dass wird nicht in einer Variablen abgelegt, von wo Du es einfach in die DB spielen kannst.
http://at.php.net/manual/de/features.file-upload.php Genau durchlesen!!!
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org . |
|
|
|
|
|
#4 |
|
Elite
![]() |
der zitierte Artikel http://at.php.net/manual/de/features.file-upload.php hilft mir nicht sehr -
ich möchte das Bild ja NICHT als Datei, sondern direkt in meine Datenbank bei der Tabelle "adressen" ins Feld "Bild" vom Typ "BLOB" schreiben. Wer könnte mir dabei bitte helfen??? danke!
____________________________________
Liebe Grüsse Michi |
|
|
|
|
|
#5 |
|
Inventar
![]() Registriert seit: 24.09.2001
Beiträge: 7.335
|
Ich sagte ja - GENAU lesen!
Das Bild wird Dir von PHP nicht automatisch in eine Variable gestellt, die Du dann einfach in die DB schreiben kannst, sondern du musst das Kopieren der Datei in die DB selber ausprogrammieren! D.h. Datei oeffnen, in eine Variable einlesen, und dann diese Variable in ein Feld der DB inserten. Jetzt klarer? Code:
$filecontent = fread(fopen("/usr/local/myfile.jpg", "r"),
filesize("usr/local/myfile.jpg"));
$filecontent = addslashes($filecontent);
$res = mysql_db_query("testdb", "
INSERT
INTO testtable
VALUES
(
'$filecontent'
)") or die("Konnte Datei nicht in Datenbank speichern!");
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org . |
|
|
|
|
|
#6 |
|
Elite
![]() |
danke!!!
Ein Problem besteht noch wenn ich Dein beschriebenes fopen("/usr/local/myfile.jpg", "r"), mache: WO in meiner Umgebung liegt dieses Bild, nachdem ich es in der FORM eingegeben habe? Muss ich da im INI des Apache bzw. PHP oder MySQL was verändern, bzw. überhaupt erst was definieren, um das von Dir zitierte "/usr/local/myfile.jpg" irgendwo zu sehen? wenn ich mir meine Daten aus der Bank aufliste, hatte ich nämlich schon einmal beim Herumprobieren mit meiner Eingabemaske einen Text-Eintrag ins Feld "Bild" hineinbekommen. einmal "H:WINDOWSphp1A.tmp" (ohne "\" ) und ein weiteres Mal: "G:\Bilder\Julia.jpg" (weiss aber nicht mehr, wie ich zu diesem eher aussagekräftigem Dateinamen kam???) momentan sehe ich den Wald vor lauter Bäumen nicht mehr ![]()
____________________________________
Liebe Grüsse Michi |
|
|
|
|
|
#7 | |
|
Inventar
![]() Registriert seit: 24.09.2001
Beiträge: 7.335
|
Oida voda!
Meinen Link hast Du nicht gelesen, oder? ![]() Der Dateiname im Script war ja nur fuer Demo-Zwecke, den richtigen "temporaeren Namen bekommst Du ueber Zitat:
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org . |
|
|
|
|
|
|
#8 |
|
Inventar
![]() Registriert seit: 24.01.2001
Beiträge: 5.631
|
Felder mit dem Datentyp BLOB können mit LOAD_FILE(filename) gefüllt werden (der Datentyp BLOB erlaubt maximal 64 KB Dateninhalt)
|
|
|
|
|
|
#9 |
|
Inventar
![]() Registriert seit: 24.09.2001
Beiträge: 7.335
|
TINYBLOB, TINYTEXT L+1 bytes, where L < 2^8
BLOB, TEXT L+2 bytes, where L < 2^16 MEDIUMBLOB, MEDIUMTEXT L+3 bytes, where L < 2^24 LONGBLOB, LONGTEXT L+4 bytes, where L < 2^32 Ein Beispiel zu load_file gibts hier: http://gd.tuwien.ac.at/db/mysql/doc/...functions.html
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org . |
|
|
|
|
|
#10 |
|
Inventar
![]() Registriert seit: 24.01.2001
Beiträge: 5.631
|
Ein Verweis auf die Bilddatei mittels VARCHAR Textfeld 'Dateiname' - z.B. - funzt wesentlich besser. Weniger Segmentierung, weniger Daten in der Datenbank bla bla bla ...
Ein einfaches echo "<img src=\"$Dateiname\">"; im php Teil eines *.php / *.phtml Skripts sollte die Datei vom Dateisystem aus laden. Sollte der 'Pfad zur Datei' ein absoluter sein, muß man den HTML Code um "file:" erweitern. echo "<img src=\"file:$Dateiname\">"; |
|
|
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|