Hallo,
habe ein Problem ich würde gerne einen Zip-Ordner hochladen dann in dem Verzeichnis $dir einen Ordner mit dem Namen des Zipverzeichnis erstellen also wenn es gremlin.zip war soll in $dir der ordner gremlin erstellt werden. Nach $dir wird die hochgeladene Zip Datei erstmal kopiert, und dann von dort aus nach /gremlin/ entpackt.
Allerdings zickt dort Safemode
Bedeutet ja soviel wie das mein Script von Userid 647 nicht auf den Ordner von Userid 33 zugreifen soll, stimmts? Aber wie änder ich das? Ich erstelle doch den ordner vorher mit mkdir(); und mache direkt danach mit unzip(); das andere, ist die selbe php Datei (abgesehen von der Funktion unzip() die wird im Original includet).
Bin über jeden Tipp dankbar
Gruß
Gremlin
habe ein Problem ich würde gerne einen Zip-Ordner hochladen dann in dem Verzeichnis $dir einen Ordner mit dem Namen des Zipverzeichnis erstellen also wenn es gremlin.zip war soll in $dir der ordner gremlin erstellt werden. Nach $dir wird die hochgeladene Zip Datei erstmal kopiert, und dann von dort aus nach /gremlin/ entpackt.
PHP:
function unzip($zipfile,$unzip_path)
{
$zip = zip_open($zipfile);
while ($zip_entry = zip_read($zip)) {
zip_entry_open($zip, $zip_entry);
if (substr(zip_entry_name($zip_entry), -1) == '/') {
$zdir = substr(zip_entry_name($zip_entry), 0, -1);
if (file_exists($unzip_path.'/'.$zdir)) {
trigger_error('Directory "<b>' . $zdir . '</b>" exists', E_USER_ERROR);
return false;
}
mkdir($unzip_path.$zdir);
}
else {
$name = zip_entry_name($zip_entry);
if (file_exists($unzip_path.$name)) {
trigger_error('File "<b>' . $name . '</b>" exists', E_USER_ERROR);
return false;
}
$fopen = fopen($unzip_path.'/'.$name, "w");
fwrite($fopen, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)), zip_entry_filesize($zip_entry));
}
zip_entry_close($zip_entry);
}
zip_close($zip);
return true;
}
#############################
$message = '';
if (isset($_POST['checkUpload'])){
if (substr( strtolower( strrchr($_FILES['datei']['name'], '.') ), 1 ) == 'zip'){
if(is_uploaded_file($_FILES['datei']['tmp_name'])){
# verschieben
move_uploaded_file($_FILES['datei']['tmp_name'], $dir.$_FILES['datei']['name']);
# chmod setzen
chmod($dir.$_FILES['datei']['name'],0777);
# zip Datei entpacken
mkdir($dir.str_replace('.zip','',$_FILES['datei']['name']),0777);
unzip($dir.$_FILES['datei']['name'],$dir.'/'.str_replace('.zip','',$_FILES['datei']['name']));
$message = 'Upload Erfolgreich';
}else{
$message = 'Fehler beim hochladen der Datei';
}
}else{
$message = 'Nur Zip-Archive erlaubt!';
}
}
if ($message) echo $message;
Allerdings zickt dort Safemode
Warning: fopen() [function.fopen]: SAFE MODE Restriction in effect. The script whose uid is 647 is not allowed to access /var/www/web1/html/vms.designerscripte.net/module/gremlin owned by uid 33 in /var/www/web1/html/gremlin/lib/extras.lib.php on line 113
Warning: fopen(../module/gremlin/module.php) [function.fopen]: failed to open stream: No such file or directory in /var/www/web1/html/gremlin/lib/extras.lib.php on line 113
Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/web1/html/gremlin/lib/extras.lib.php on line 114
Bedeutet ja soviel wie das mein Script von Userid 647 nicht auf den Ordner von Userid 33 zugreifen soll, stimmts? Aber wie änder ich das? Ich erstelle doch den ordner vorher mit mkdir(); und mache direkt danach mit unzip(); das andere, ist die selbe php Datei (abgesehen von der Funktion unzip() die wird im Original includet).
Bin über jeden Tipp dankbar
Gruß
Gremlin