Hi,
ich bin gerade dabei, ein neues Modul zu schreiben. Es soll ein Dateiverzeichnis werden, spezialisert auf Nicht-Bilddateien.
Dort sollten v.a. die Dateien vom User hochgeladen werden können.
Für den Upload habe ich mir eine Upload-Klasse gesucht (im Anhang), die an sich ganz gut funktioniert.
Folgendermaßen habe ich sie eingebunden:
<?php
$my_uploader = new uploader(de);
$my_uploader->max_filesize(150000);
$my_uploader->max_image_size(800, 800);
if ($my_uploader->upload($upload_file_name, $acceptable_file_types, $default_extension)) {
$my_uploader->save_file($datadir, $mode);
?>
Nur, ich hab keine Ahnung, wie ich dort weitere Dateitypen hinzufüge, .xls Dateien kann ich einfach nicht hochladen, auch, wenn ich sie als MIME-Types eintrage...
<?php
$acceptable_file_types =
"image/gif
|image/jpeg
|application/pdf
|text/plain
|application/zip
|application/msexcel
|application/msword
|application/mspowerpoint";
?>
Vielleicht kennt ja jemand von Euch die Klasse und kann mir da weiter helfen.
Uund, dann hätte ich gern noch was anderes :)
Und zwar, sollten die hochgeladenen Dateien vor dem Speichern gezippt werden :)
Leider kapiere ich die OOP nicht wirklich, und weiß nicht, ob sich ein zip-Skript wie z.B. dieses irgendwie integrieren ließe..? (Fragt bitte nicht, wo ich das her habe, ich weiß es nimmer).
<?php
$dateihandle = fopen("logo.jpg",r); //Hier das Bild angeben
$bild = fread($dateihandle,1024000); //Da wird das Bild ausgelesen (bis zu 1MB atm)
$zipfile = new zipfile();
// add the subdirectory ... important!
$zipfile -> add_dir("/");
// add the binary data stored in the string 'filedata'
$filedata = $bild;
$zipfile -> add_file($filedata, "bild.jpg");
// OR instead of doing that, you can write out the file to the loca disk like this:
$filename = "output.zip";
$fd = fopen ($filename, "wb");
$out = fwrite ($fd, $zipfile -> file());
fclose ($fd);
?>
Wäre ein Traum, wenn mir jemand weiterhelfen könnte. Bei Interesse biete ich das Modul auch gerne zum Download an.
Viele Grüße,
Martin
[gelöscht durch Administrator]
Hallo !
1. Konstruktor-Aufruf.
Du rufst den Konstruktor mit einem String-Übergabewert auf.
Bitte gebe den Wert auch entsprechend an :
Nicht
Zitat$my_uploader = new uploader(de);
sondern :
Zitat$my_uploader = new uploader('de');
2.
Zitatxls Dateien kann ich einfach nicht hochladen
Die Dateierweiterung von der Excel-Datei ist kleingeschrieben ?
(Bei .XLS also in Großschrift könnte es Probleme geben)
Ansonsten ändere doch einmal die Zeile 187 der Klassendatei von
Zitatelseif(!ereg("(\.)([a-z0-9]{3,5})$", $this->file["name"]) && !$extention) {
auf
Zitatelseif(!ereg("(\.)([a-zA-Z0-9]{3,5})$", $this->file["name"]) && !$extention) {
Dann muss evt. noch (nach Zeile 194 aber VOR default:) eine Erweiterung der switch Funktion erfolgen :
Zitat
case "application/msexcel":
$this->file["extention"] = ".xls"; break;
3.
Zitat$zipfile = new zipfile();
Hast Du die Klassendatei zu dem Beispiel ? Sonst ist es Käse mit dem verwenden des Beispiels.
Mal stückum probieren.
MfG
jubilee
Hi!
thx für die Hinweise. Hab Punkte 1 und 2 gleich geändert, aber er akzeptiert immer noch keine .xls.
Ich überleg schon, ob ich doch was eigenes machen soll, nur bei Uploads sollte man halt schon recht vorsichtig (=sicher) sein...
Und die zip-Klasse habe ich nicht, *gg* ich dachte, dazu muss man nur zlib includen...
Jetzt hab ich eine zip-Klasse gefunden (ss_zip class, wieder im Anhang), ich weiß nur nicht, ob bzw. wie ich die vor $my_uploader->save_file($datadir, $mode);
einbaue...
[gelöscht durch Administrator]
Hallo !
Versuch diese geänderte upload-Klasse einmal :
Das mit der ZIP-Klase schaue ich mir noch an
MfG
jubilee
[gelöscht durch Administrator]
vielen Dank für die Datei! :)
Leider macht er´s immer noch ned. Kapier ich nicht ganz, v.a., weil ja .doc auch nirgends mit Dateiendung etc. hinterlegt ist und trotzdem geht.
Aber mei, dann geht Excel halt erstmal nicht. Vielleicht findet sich ja noch eine bessere Upload-Klasse.
Wegen den .zip Dateien wäre es super, wenn du dazu kommen würdest, dir das anzusehen. Ich bin gerade an der Detailansicht, Suche und allg. Navigation.
Macht doch mehr Arbeit, wie ich anfangs dachte. Aber das is wohl immer so... ;)