[PHP] filesize-Problem
-
Hallöchen!
Ich möchte aus einem Verzeichnis, wo sich unterverzeichnisse befinden, einzeln Dateien rauslesen, sie dann zipen und dann in die Tabelle speichern.
Leider fehlt mein Skript schon beim filesize fehl, weil er nicht die richtige Größe der Datei liefert.So sieht mein Code aus:
if (is_dir($directory)) { $handle = opendir($directory); while ($file = readdir ($handle)) { if ($file != "." && $file != "..") { $fh = fopen ($file, "rb"); $data = fread ($fh, filesize($file)); $gzdata = gzcompress($data); fclose ($handle); } } closedir($directory); $gzdata = addslashes($gzdata); }
Und hier sind die Fehlermeldungen:
PHP Warning: fread(): Length parameter must be greater than 0. in /var/www/xxx/xxx/xxx.php on line 25
Warning: fread(): Length parameter must be greater than 0. in var/www/xxx/xxx/xxx.php on line 25
PHP Warning: closedir(): supplied argument is not a valid Directory resource in var/www/xxx/xxx/xxx.php on line 30Warning: closedir(): supplied argument is not a valid Directory resource in var/www/xxx/xxx/xxx.php on line 30
Für jede schnelle Hilfe wäre ich sehr Dankbar!
-
Afaik musst du dir aus $file erst wieder den vollständigen Pfad zusamensetzen
-
if(is_dir($directory) && ($handle=opendir($directory))!==false) // Fehler behoben und Verbesserung { while(($file=readdir($handle))!==false) // Fehler behoben { $file=$directory."/".$file; // Fehler behoben if(!is_dir($file)) // Fehler behoben { $fh=fopen($file,"rb"); $data=fread($fh,filesize($file)); $gzdata=gzcompress($data); fclose($fh); // Fehler behoben } } closedir($handle); // Fehler behoben $gzdata=addslashes($gzdata); }
Mann hast du deine Fehler versteckt... musste 4mal meinen Code verbessern
-
DANKE, das habe ich gefixt!
aber meine nächste Frage:
Die Datei, die in der DB reingeschreiben ist, hat einen ganz komischen Namen und den kann ich später mitis_file
gar nicht mehr aufrufen.
Was ist denn daran falsch?!
Das Feld in der DB-Tabelle istlongblob
-
Datei binär geöfnet vor dem schreiben?
Oder decompressen vielleicht? o_O