Dateien in Datenbank hochladen
Jan
- php
Hallo,
ich habe ein Script geschrieeben, um Dateien(Textdokumente wie von Word)in meine Datenbank hochzuladen, nun bekomme ich aber immer wieder den Hinweis das in dem Script die hochzuladende Datei nicht gefunden werden konnte oder ähnliches (no such file or directory)
fopen(): Unable to access WMOK.doc
fopen(WMOK.doc): failed to open stream: No such file or directory
filesize(): Stat failed for WMOK.doc (errno=2 - No such file or directory) Wobei ich bei diesem Fehler denke das es sich um die zugelassene Dateigröße handelt, was aber nicht sein kann, da diese mit 1MB doch sehr hoch angegeben ist und das hochzuladende Dokument nur 40 kb wiegt
Ich hoffe jemand kann mir helfen oder hat Ratschläge
MFG
JAn
Hello,
Ich hoffe jemand kann mir helfen oder hat Ratschläge
lass Dir bitte nach dem Hochladen anzeigen:
echo "<pre>\n";
print_r($_FILES);
echo "</pre>\n";
Und dann sag uns, was da angezeigt wird.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hello,
Ich hoffe jemand kann mir helfen oder hat Ratschläge
lass Dir bitte nach dem Hochladen anzeigen:
echo "<pre>\n";
print_r($_FILES);
echo "</pre>\n";Und dann sag uns, was da angezeigt wird.
Array
(
[u_pic] => Array
(
[name] => WMOK.doc
[type] => application/msword
[tmp_name] => /srv/www/htdocs/web429/phptmp/phpRwFIPj
[error] => 0
[size] => 116736
)
Das ist es wohl.
JAn
Hello Jan,
Und dann sag uns, was da angezeigt wird.
Array
(
[u_pic] => Array
(
[name] => WMOK.doc
[type] => application/msword
[tmp_name] => /srv/www/htdocs/web429/phptmp/phpRwFIPj
[error] => 0
[size] => 116736
)
Dann solltest Du innerhalb des Scripts nun über $_FILES['u_pic']['tmp_name'] als Dateinamen auf die temporäre Datei zugreifen können, um sie in einen persistenten Modus zu kopieren.
Wenn das nicht geht, gibt es unterschiedliche Fehlerquellen. Dann benötigen wir sämtliche Fehlermeldungen, die möglich sind.
error_reporting(E_ALL);
am Anfang Deines Scriptes könnte da schon helfen.
Wichtig ist immer die Abfrage von ['error'] aus den $_FILES, bevor man irgendwas macht mit dem hochgeladenen File. Das _muss_ 0 sein!
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo Tom,
Dann solltest Du innerhalb des Scripts nun über $_FILES['u_pic']['tmp_name'] als Dateinamen auf die temporäre Datei zugreifen können, um sie in einen persistenten Modus zu kopieren.
Bitte nich soviel Fachjargon bin noch ziemlich frisch ;)
Vielleicht al eine kurze Erläuterung?
Wenn das nicht geht, gibt es unterschiedliche Fehlerquellen. Dann benötigen wir sämtliche Fehlermeldungen, die möglich sind.
error_reporting(E_ALL);
sagt mir "2039" was immer das auch heißen mag. Ich weiß es leider nicht.
Wichtig ist immer die Abfrage von ['error'] aus den $_FILES, bevor man irgendwas macht mit dem hochgeladenen File. Das _muss_ 0 sein!
Es ist ja null, wie wir gerade gesehen haben.
JAn
Hello Jan,
Vielleicht al eine kurze Erläuterung?
Wenn die Datei hochgeladen wurde, wird sie nur temporär im Speicher (oder auf Platte) gehalten. Wenn das Script endet, verschwindet auch die Datei wieder.
Man muss sie erst kopieren in eine dauerbestädige Datei.
Das klappt aber leider wegen falscher Konfiguration der Webserver manchmal nicht.
error_reporting(E_ALL);
sagt mir "2039" was immer das auch heißen mag. Ich weiß es leider nicht.
Das war der alte Wert. Der neue, nachdem Du die Funktion wie beschrieben aufgerufen hast, ist dann 2047. Das sorgt dafür, dass auch sogenannte Notices angezeigt werden.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hello Jan,
auf jedan Fall lesenswert:
http://de3.php.net/features.file-upload
Dann solltest Du es eigentlich hinkriegen, wenn nicht der Webserver schlecht konfiguriert ist.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom