[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Zip-Upload Problem - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Benutzeravatar
gege
Beiträge: 83
Registriert: 4. Aug 2006, 12:05
Wohnort: near stuttgart
Kontaktdaten: Website

Zip-Upload Problem

12. Aug 2008, 17:32

Hi zusammen,

ich habe folgendes Problem:

Hab das Zip-Upload-Addon installiert.
Zip Dateien werden auch upgeloaded.
Dann werden in dem Ordner /redaxo/include/addons/zip_upload/tmp/
2 Ordner erstellt z.B. REDAXO_EXTRACT_TEMP1218554567 und REDAXO_EXTRACT_TEMP1218554567_flat. Im 2ten Ordner ..._flat
gefinden sich nach dem extrahieren auch die entpackten Dateien, nur in meinem Ordner Files sind nur komische Dateien mit dem Namen .nfs0120e01 zu finden.

Zur Info, ich bekomme noch eine Fehlermeldung nach dem extrahieren:
Warning: rmdir(../../../htdocs/redaxo/include/addons/zip_upload/tmp/REDAXO_EXT/RACT_TEMP1218555015) [function.rmdir]: File exists in /../../../htdocs/redaxo/include/addons/zip_upload/functions/function_folder.inc.php on line 167

Die sagt aber ja eigentlich nur das der Ordner nicht gelöscht werden kann, soweit ich die Fehlermeldung richtig deute.

Kann mir jemand bei meinem Problem weiterhelfen?

Goldacker
Beiträge: 148
Registriert: 1. Jul 2007, 13:27
Wohnort: Hamburg / Berlin / Neubrandenburg
Kontaktdaten: Website

Dein Server

13. Aug 2008, 13:25

Ich habe das Addon nur für Redaxo 4 angepasst und bin in den Code nicht weiter eingestiegen.
Dennoch habe ich mal wegen dem Fehler mit rmdir geschaut:
Damit die Löschung durchgeführt werden kann, muß sowohl das Skript als auch das Verzeichnis die entsprechenden Schreibrechte haben und das Verzeichnis leer sein.
Einfach mal auf deinem Server prüfen.
Laut http://de2.php.net/rmdir solltest du auch mindestens PHP 4 auf deinem Server haben, um den Befehl zu nutzen. Phpinfo() hilft da sicher weiter.
Ansosnten dürfte der Fehler nicht auf Redaxo oder meine Portierung zurück zu führen sein.

Benutzeravatar
gege
Beiträge: 83
Registriert: 4. Aug 2006, 12:05
Wohnort: near stuttgart
Kontaktdaten: Website

13. Aug 2008, 13:38

danke erst einmal für deine Antwort.
Bin jetzt schon soweit das ich herausgefunden habe das die Ordner die vom Skript erzeugt werden nicht chmod 777 sondern nur mit 750 erzeugt werden.
Hab es jetzt hingekommen das der _flat Ordern durch chmod($tempdir, 0777); auf 777 gesetzt wird.
Nur finde ich leider nicht den eintrag wo der eigentlich Ordner erstellt wird.
Still searching ;-)

Benutzeravatar
gege
Beiträge: 83
Registriert: 4. Aug 2006, 12:05
Wohnort: near stuttgart
Kontaktdaten: Website

13. Aug 2008, 15:01

So, also hab jetzt endgültig herausgefunden an was es liegt.
Das Verzeichnis ist per NFS in den Server eingebunden. Die von mir entdeckten Dateien werden vom NFS-Server automatisch angelegt und gelöscht.
Aber halt erst wenn der Prozess beendet ist.

Kann mir da einer vielleicht weiterhelfen?

Benutzeravatar
gege
Beiträge: 83
Registriert: 4. Aug 2006, 12:05
Wohnort: near stuttgart
Kontaktdaten: Website

13. Aug 2008, 18:01

Falls es jemanden interessiert, ich habe das Addon jetzt ein wenig umgebaut und die Daten aus dem Zip-File werden jetzt in einen temp ordner in /FILES ausgelesen und von dort dann herauskopiert in den ordern FILES.
So hat es zumind bei mir funktioniert.

Sollte einer mal die gleichen Probleme haben, kann er sich gern bei mir melden.

Goldacker
Beiträge: 148
Registriert: 1. Jul 2007, 13:27
Wohnort: Hamburg / Berlin / Neubrandenburg
Kontaktdaten: Website

Code

13. Aug 2008, 21:28

poste doch mal deine Anpassungen und den Code ... das mit dem NFS Server habe ich nicht verstanden

Benutzeravatar
gege
Beiträge: 83
Registriert: 4. Aug 2006, 12:05
Wohnort: near stuttgart
Kontaktdaten: Website

14. Aug 2008, 09:33

Hier zur Erklärung ein Post aus nem anderen Forum zum Thema NFS
http://phpforum.de/forum/showthread.php ... ost1236334
Dann hier die Änderungen:
Zuerst habe ich im Order FILES einen Ordern temp angelegt und dem die Rechte 777 erteilt.

Änderungen in redaxo/include/addons/zip_upload/functions/function_folder.inc.php

Zeile 11
alt

Code: Alles auswählen

$NFILENAME = "";
neu

Code: Alles auswählen

$NFILENAME = $FILE[name];
Zeile 16 löschen

Code: Alles auswählen

$NFILENAME = strtolower(preg_replace("/[^a-zA-Z0-9.]/","_",$FILENAME));
Zeile 49 - 57 löschen

Code: Alles auswählen

if(!@move_uploaded_file($FILE[tmp_name],$REX[MEDIAFOLDER]."/$NFILENAME") )
    {
         if (!@copy($FILE[tmp_name],$REX[MEDIAFOLDER]."/$NFILENAME"))
         {
                $message .= "move file $FILENAME failed | ";
                $ok = 0;
                $upload = false;
       }
}
Zeile 71
alt

Code: Alles auswählen

$FILESQL->setValue("title",$FILEINFOS[title]);
neu

Code: Alles auswählen

$FILESQL->setValue("title",$NFILENAME);
Zeile 168
alt

Code: Alles auswählen

if(rmdir($dir)) { $success = true; }
neu

Code: Alles auswählen

$success = true;
Änderungen in redaxo/include/addons/zip_upload/pages/main.inc.php

Zeile 95
alt

Code: Alles auswählen

$tempdir = ini_get('upload_tmp_dir')."/REDAXO_EXTRACT_TEMP".date('U');
neu

Code: Alles auswählen

$tempdir = "/Dein/absoluter/Pfad/files/temp";
Zeile 107 + 108 löschen

Code: Alles auswählen

delete_recursively($tempdir);
mkdir($tempdir, 0777);
Zeile 131 löschen

Code: Alles auswählen

flaten_folder($tempdir);
Zeile 138
alt

Code: Alles auswählen

$tempdir = $REX['INCLUDE_PATH']."/addons/$page/tmp/REDAXO_EXTRACT_TEMP".date('U');
neu

Code: Alles auswählen

$tempdir = "/Dein/absoluter/Pfad/files/temp";
Zeile 139 löschen

Code: Alles auswählen

delete_recursively($tempdir);
Zeile 141 löschen

Code: Alles auswählen

flaten_folder($tempdir);
Zeile 236
alt

Code: Alles auswählen

delete_recursively($tempdir);
neu

Code: Alles auswählen

move_all_files_recursively($tempdir,"/Dein/absoluter/Pfad/files");
delete_recursively($tempdir);
Zeile 442
alt

Code: Alles auswählen

<td class=lgrey align='center'><a href=index.php?page=".$page."&subpage=extract&function=extract&impname=".$file.">".$I18N_ZIPUP->msg("file_extractbutton")."</a></td>
neu

Code: Alles auswählen

<td class=lgrey align='center'><a href=index.php?page=".$page."&subpage=extract&impname=".$file.">".$I18N_ZIPUP->msg("file_extractbutton")."</a></td>
So das wars, hoffe das ist für alle nachvollziehbar.
Bei Fragen einfach fragen ;-)

Zurück zu „Allgemeines [R4]“