 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
04.04.2006, 22:38
|
#31
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
nein ist es nicht, wenn Du den richtigen header vorweg sendest, werden Die echos direkt in den Downloadstream geschrieben
PHP-Code:
//send header
$mime="application/x-gzip";
header('Content-Type: '.$mime);
header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Content-Disposition: inline; filename="xyz.zip"');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
//send zipfile
echo $zip->file();
exit;
|
|
|
04.04.2006, 22:46
|
#32
|
|
TP-Newbie
Registriert seit: Apr 2006
|
ahh.. supper  jetzt hab ichs auch kapiert! Vielen dank an dich und die harte Arbeit an dieser Klasse! Super! Danke
greet,
Pot
|
|
|
05.04.2006, 13:25
|
#33
|
|
TP-Newbie
Registriert seit: Apr 2006
|
mh sorry wegen Doppelpost aber ich hab da noch ne Frage..
also wenn ich jetzt alle Bilder ausgewählt habe (habe ein kleines Formular gemacht da kann man Bilder auswählen die ins Archiv reinsollen) und dann auf Download drückt kommt das Download-Fenster. Leider weiss man nicht wie gross diese Datei ist, denn es steht: unbekannte Dateigrösse.
Kann man dies dem Script oder der Klasse irgendwie beibringen die Grösse anzugeben?
MfG,
Pot
|
|
|
11.04.2006, 09:38
|
#34
|
|
TP-Newbie
Registriert seit: Sep 2004
|
Öhm, Hallo,
ich habe da auch nochmal eine kleine Frage.
Also nochmal zum besseren Verständnis.
Ich habe einen Ordner "cache", in diesem Ordner habe ich eine swf-Datei. Dann sind in diesem Ordner "cache" auch noch zwei weitere Ordner, der eine heißt "bilder" und der andere "php".
Ich möchte jetzt folgendes in der zip-Datei reinsetzten:
cache/datei.swf
cache/bilder/bild1.jpg
cache/bilder/bild2.jpg
cache/php/php_info_datei.php
(bei der php-Datei kann es sein das diese nicht immer vorhanden ist)
Die Zip-Datei soll dann hinterher auch die Ordner mit rein schreiben, also das man dann die Datei nur in den cache-Ordner entpacken braucht und dann sind die Bilder in den Bilderordner und die php-datei ist dann schon (fals vorhanden) in den php-Ordner.
Also müßte der Code dann doch so aussehen, oder:
PHP-Code:
$zip=new zipfile;
$zip->addFile("/cache/datei.swf"),"datei.swf",time());
$zip->addFile("/cache/bilder/bild1.jpg"),"bilder/bild1.jpg",time());
$zip->addFile("/cache/bilder/bild2.jpg"),"bilder/bild2.jpg",time());
if (file_exists("/cache/php/php_info_datei.php")) {
$zip->addFile("/cache/php/php_info_datei.php"),"php/php_info_datei.php",time());
}
echo $zip->file();
Ist doch richtig so, oder?
Dann habe ich noch schnell eine Frage. Ich weiß nicht ob es die gleiche Zip-Classe ist. Ich habe irgendwo auch so eine klasse gefunden, da kann man mit öhm txt-dateien mit erstellen. Geht das bei der Klasse hier auch?
Also so???
PHP-Code:
$text="Dies ist ein Text, der in das Ziparchiv soll.";
$zipfile->addFile(, 'Text.txt');
Vielen Dank schonmal für Eure Hilfe bzw. Eure antwort.
Viele Grüße
Dj_PD
|
|
|
11.04.2006, 10:07
|
#35
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
@Pot - da das Archiv on-the-fly erstellt wird, weiss man die Dateigrösse vorher nicht
@DjPD - ja, der Ansatz ist richtig.
Das mit der Textdatei geht nur, wenn Du die Datei vorher speicherst.
|
|
|
27.04.2006, 14:38
|
#36
|
|
TP-Insider
Registriert seit: Jul 2004
Ort: Mönchengladbach
|
Hm, also ich kriege das Ding irgendwie nicht ans laufen...
Code:
<?php
require('zip_class.php');
$zip = new zipfile;
if(file_exists('test.gif')) $zip->addFile('test.gif', 'test.gif', time());
else die('Fehler');
header('Content-Type: application/x-gzip');
echo $zip->file();
?>
Die Zip-Datei wird erstellt, aber die Datei "test.gif" enthält nur ihren Dateinamen und keine Bildinformationen...
// EDIT
Aha... file_get_contents();... Könnte man das nicht in die Klasse mit hineinnehmen?
Und wieso hast du im allerersten Beispiel nur den Dateinamen stehen, St@eff.en?
__________________
GCM d- s: a-- C++$ UL P L+ E--- W++ N o? K- w+ !O !M !V PS+ PE Y PGP- t+ 5? X R- tv- b- DI- !D G e h! r++ z?
Geändert von Jupp (27.04.2006 um 15:28 Uhr).
|
|
|
27.04.2006, 18:03
|
#37
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
file_get_contents geht nur in php5, das script basiert aber auf php4.
Die Parameter sind
$zip->addFile('Datei mit Pfad',Dateiname,Zeit);
Auch wenn die Datei nicht existiert, wird der Eintrag erstellt, aber nur mit 0 Bytes, also stimmt bei Dir der Pfad zu test.gif nicht.
|
|
|
28.04.2006, 10:52
|
#38
|
|
TP-Insider
Registriert seit: Jul 2004
Ort: Mönchengladbach
|
Zitat:
|
Zitat von St@eff.en
file_get_contents geht nur in php5, das script basiert aber auf php4.
|
Hm, laut phpinfo() ist bei mir PHP Version 4.4.0-4 installiert, trotzdem geht file_get_contents().
Zitat:
|
Zitat von St@eff.en
Auch wenn die Datei nicht existiert, wird der Eintrag erstellt, aber nur mit 0 Bytes, also stimmt bei Dir der Pfad zu test.gif nicht.
|
Und was ist mit
Code:
if(file_exists('test.gif'))
?
Naja, mittlerweise funktioniert es ja mit file_get_contents().
__________________
GCM d- s: a-- C++$ UL P L+ E--- W++ N o? K- w+ !O !M !V PS+ PE Y PGP- t+ 5? X R- tv- b- DI- !D G e h! r++ z?
|
|
|
30.04.2006, 21:21
|
#39
|
|
TP-Member
Registriert seit: Jan 2006
|
braucht man dafür irgendwelche erweiterungen aufm server ?
|
|
|
01.05.2006, 18:47
|
#40
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
nein.
|
|
|
06.05.2006, 19:59
|
#41
|
|
TP-Junior
Registriert seit: May 2006
Ort: Oensignen
|
Zip-Klasse
Hallo zusammen
Ich bin auf diese Zip-Klasse gestossen und finde sie recht gut. Ein kleines Problem habe ich jedoch das ich irgendwie nicht in den Griff bekomme. Ich möchte eine Zip-Datei mit Fotos aus einer MySQL Tabelle erstellen. Also die Bilder sind im Verzeichnis "images" auf dem Server abgelegt, die Dateibezeichnungen hole ich jedoch aus der Datenbank. Mein Problem ist, dass jeweils nur eine Datei gezippt wird und nicht z.B. 5 oder so. Ich habe eine Seite mit allen Fotos die ich dann per Checkbox auswählen. Diese ausgewählten Fotos sollten dann gezippt werden. Mein Code sieht so aus:
Code:
<?PHP
include("zip_class.php");
include("../inc/dbconnect.php");
foreach($_POST['bildid'] as $key => $value)
{
$zip=new zipfile;
$bildid=$_POST['bildid'][$key];
$sql = "select * from t_member_fotos where pkid='$bildid'";
$ergebnis = mysql_query($sql);
while($row = mysql_fetch_object($ergebnis))
{
$bild=$row->bildgross;
$zip->addFile("../images/artikel/".$bild,$bild,time());
}
}
//send header
$mime="application/x-gzip";
header('Content-Type: '.$mime);
header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Content-Disposition: inline; filename="download.zip"');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
//send zipfile
echo $zip->file();
exit;
?>
Habe schon x Möglichkeiten ausprobiert aber keine hat funktioniert. Könnt Ihr mir bitte kurz auf die Sprünge helfen ?
Vielen Dank und Gruss aus der Schweiz
Sabine
|
|
|
06.05.2006, 20:13
|
#42
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Das liegt daran, das Du die Klasse bei jedem File durch den Aufruf
$zip=new zipfile;
wieder überschreibst.
Verlager die Zeile an den Anfang des Scriptes, und alles sollte klappen 
|
|
|
06.05.2006, 20:41
|
#43
|
|
TP-Junior
Registriert seit: May 2006
Ort: Oensignen
|
Hallo St@eff.en
Du bist genial, genau das wars !! Vielen herzlichen Dank
Grüsschen
Sabine
|
|
|
07.05.2006, 10:25
|
#44
|
|
TP-Junior
Registriert seit: May 2006
Ort: Oensignen
|
Hallo
Hmm, peinlich peinlich. Die zip-Datei erstellt es wunderbar, alles sah eigentlich perfekt aus bis ich heute mal ein Zip entpackte und die Bilder (jpg und gif) öffnen wollte. Jedes Fotos ist nur 1KB gross.
Die Fehlermeldung lautet: Can't read file header. Unknown file format.
Den Pfad habe ich geprüft, die Grafiken sind auch vorhanden. Mein aktueller Code sieht so aus:
Code:
$zip=new zipfile;
foreach($_POST['bildid'] as $key => $value)
{
$bildid=$_POST['bildid'][$key];
$sql = "select * from t_member_fotos where pkid='$bildid'";
$ergebnis = mysql_query($sql);
while($row = mysql_fetch_object($ergebnis))
{
$bild=$row->bildgross;
$zip->addFile("images/".$bild,$bild,time());
$zip->file();
}
}
Geb ich die Fotos direkt an, also bei addFile z.B. $zip->addFile("images/test1.jpg","test1.jpg",time()); geht es auch nicht. Liegt es doch irgendwie am Pfad ? Die .php Seiten liegen im Ordner "member", dort gibt es ein Unterordner "images" mit den entsprechenden Grafiken. Mit file_get_contents habe ich es auch versucht, dann sind die Grafiken nur noch 0KB gross. Hatte bitte jemand wieder so eine zündende Idee, was ich falsch mache ?
Vielen Dank
Sabine
|
|
|
07.05.2006, 14:39
|
#45
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Hallo Sabine,
das kann nur ein Pfad-Problem sein, er findet das Bild nicht.
Definiere irgendwo in Deinem Script den absoluten Pfad, z.B. so:
PHP-Code:
define('ABS_PATH',$_SERVER['DOCUMENT_ROOT'].'/');
das wäre so, wenn das script im root des Webservers läuft. Dann benutze das für den AUfruf:
PHP-Code:
$zip->addFile(ABS_PATH."images/".$bild,$bild,time());
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:58 Uhr.
|
 |