Ich versuche, zwei Dateien in einem anderen Verzeichnis zu komprimieren, ohne die Ordnerhierarchie mit zu komprimieren.
Das Ereignis wird durch einen Tastendruck ausgelöst, der Javascript veranlasst, Informationen mittels AJAX an PHP zu senden. PHP ruft ein Perl-Skript auf (um die Vorteile des XLSX-Writer-Moduls von Perl und die Tatsache zu nutzen, dass PHP irgendwie scheiße ist, aber ich schweife ab...), das die Dateien ein paar Ordner weiter unten in der Hierarchie ablegt. Der entsprechende Code ist unten dargestellt.
system("createFiles.pl -ids ${rows} -test ${test} -path ${path}",$retVal);
`zip ${path}/{$test}_both.zip ${path}/${test}.csv ${path}/${test}.xlsx`;
`zip ${path}/{$test}_csv.zip ${path}/${test}.csv`;
Das Problem ist, dass die Zip-Datei Folgendes enthält ${path}
Hierarchie, die durchlaufen werden muss, bevor die Dateien angezeigt werden (siehe unten):
Ich habe dies versucht (cd vor jedem Zip-Befehl):
system("createFiles.pl -ids ${rows} -test ${test} -path ${path}",$retVal);
`cd ${path}; zip {$test}_both.zip ${test}.csv ${test}.xlsx`;
`cd ${path}; zip {$test}_csv.zip ${test}.csv`;
Und es hat funktioniert, aber es scheint ein Hack zu sein. Gibt es einen besseren Weg?