-
- rank:
-
Rookie
- registered:
- September 2006
- Status:
- offline
- last visit:
- 26.01.09
- Posts:
- 5
Ich hab ein neues System mit Zikula 1.0 und Downloads 2.2 installiert, und bin dabei der Empfehlung gefolgt, das pnTemp Verzeichnis außerhalb des Webroots zu legen. Alles schön und gut, wird erkannt, in der Downloads Konfiguration steht der absolute Pfad zu den Verzeichnissen und alle Checks zeigen grün.
Aber:
Wenn ich versuche eine Datei hochzuladen, schlägt der Upload fehl.
Ein wenig debugging später ist der Schuldige gefunden:
move_uploaded_file($file_tmp, pnVarPrepForOS($upload_folder.$upload_name) in pnuserapi.php schlägt fehl, da pnVarPrepForOS den ersten / beim Pfad weglöscht und damit aus dem absoluten Pfad ein relativer wird. Ich schätze mal, "it's a feature, not a bug".
Mein hotfix war jetzt einfach das pnVarPrepForOS an der Stelle zu löschen, aber das halte ich nicht für eine optimale Lösung. Ist es überhaupt vorgesehen die upload Verzeichnisse außerhalb des Webroot zu legen?
editiert von: katze, 25.06.2008, 16:15 Uhr -
- rank:
-
Cmods-Team
- registered:
- July 2005
- Status:
- offline
- last visit:
- 03.01.10
- Posts:
- 865
Eigentlich nicht
In der nächsten Version werde ich das anpassen.
Gruß
Lindbergh
Signatur--------------------------------
Mein Wunschzettel
Unaufgeforderte Supportanfragen via Skype werden nicht beantwortet! -
- rank:
-
Rookie
- registered:
- September 2006
- Status:
- offline
- last visit:
- 26.01.09
- Posts:
- 5
Downloads 2.3 ist raus und ein "externes" pnTemp ist noch nicht möglich. Ich hab meinen quick&dirty hack auf 2.3 angepasst:
(Datei anhängen funktioniert nicht)
--- pnadminapi.php.orig 2008-03-10 16:46:48.000000000 +0100
+++ pnadminapi.php 2009-01-26 14:14:47.000000000 +0100
@@ -330,7 +330,7 @@
{
$upload_folder = pnModGetVar('downloads','upload_folder');
//check if the file is present at our server
- $filelocation = pnVarPrepForOS($upload_folder.$url);
+ $filelocation = $upload_folder . pnVarPrepForOS($url);
if (true === file_exists($filelocation))
{
@@ -505,11 +505,11 @@
// delete the file
// if it exsists
- $filepointer = is_file(pnVarPrepForOS($upload_folder.$url));
+ $filepointer = $upload_folder . is_file(pnVarPrepForOS($url));
if ($filepointer === true)
{
- if(false === unlink(pnVarPrepForOS($upload_folder.$url)))
+ if(false === $upload_folder . unlink(pnVarPrepForOS($url)))
{
return errorpage(__file__,__line__, _DL_FILEREPLACEFAIL);
}
@@ -523,15 +523,15 @@
foreach($screenshot_extensions as $shotext)
{
// if exsists delete screenshot
- if(file_exists(pnVarPrepForOS($screenshotlink.$lid.$shotext)))
+ if(file_exists($screenshotlink.pnVarPrepForOS($lid.$shotext)))
{
- unlink(pnVarPrepForOS($screenshotlink.$lid.$shotext));
+ unlink($screenshotlink.pnVarPrepForOS($lid.$shotext));
}
// if exsists delete thumbnail
- if(file_exists(pnVarPrepForOS($screenshotlink.'tn_'.$lid.$shotext)))
+ if(file_exists($screenshotlink.pnVarPrepForOS('tn_'.$lid.$shotext)))
{
- unlink(pnVarPrepForOS($screenshotlink.'tn_'.$lid.$shotext));
+ unlink($screenshotlink.pnVarPrepForOS('tn_'.$lid.$shotext));
}
}
@@ -616,11 +616,11 @@
// delete the file
// if it exsists
- $filepointer = is_file(pnVarPrepForOS($upload_folder.$url));
+ $filepointer = is_file($upload_folder.pnVarPrepForOS($url));
if ($filepointer === true)
{
- if(false === unlink(pnVarPrepForOS($upload_folder.$url)))
+ if(false === unlink($upload_folder.pnVarPrepForOS($url)))
{
return errorpage(__file__,__line__, _DL_FILEREPLACEFAIL);
}
@@ -632,15 +632,15 @@
foreach($screenshot_extensions as $shotext)
{
// if exsists delete screenshot
- if(file_exists(pnVarPrepForOS($screenshotlink.$lid.$shotext)))
+ if(file_exists($screenshotlink.pnVarPrepForOS($lid.$shotext)))
{
- unlink(pnVarPrepForOS($screenshotlink.$lid.$shotext));
+ unlink($screenshotlink.pnVarPrepForOS($lid.$shotext));
}
// if exsists delete thumbnail
- if(file_exists(pnVarPrepForOS($screenshotlink.'tn_'.$lid.$shotext)))
+ if(file_exists($screenshotlink.pnVarPrepForOS('tn_'.$lid.$shotext)))
{
- unlink(pnVarPrepForOS($screenshotlink.'tn_'.$lid.$shotext));
+ unlink($screenshotlink.pnVarPrepForOS('tn_'.$lid.$shotext));
}
}
--- pnuserapi.php.orig 2008-08-10 14:28:00.000000000 +0200
+++ pnuserapi.php 2009-01-26 14:14:47.000000000 +0100
@@ -432,7 +432,7 @@
{
// delete the old file
// if it fails return a message
- if(false === unlink(pnVarPrepForOS($upload_folder.$actfile)))
+ if(false === unlink($upload_folder . pnVarPrepForOS($actfile)))
{
return errorpage(__file__,__line__, _DL_FILEREPLACEFAIL);
}
@@ -444,7 +444,7 @@
// we hand it out to the user
$upload_name = $downloadid.$file_extension;
- if(false === move_uploaded_file($file_tmp, pnVarPrepForOS($upload_folder.$upload_name)))
+ if(false === move_uploaded_file($file_tmp, $upload_folder . pnVarPrepForOS($upload_name)))
{
return false;
}
@@ -531,15 +531,15 @@
foreach($screenshot_extensions as $shotext)
{
// if exsists delete screenshot
- if(file_exists(pnVarPrepForOS($screenshotlink.$lid.$shotext)))
+ if(file_exists($screenshotlink . pnVarPrepForOS($lid.$shotext)))
{
- unlink(pnVarPrepForOS($screenshotlink.$lid.$shotext));
+ unlink($screenshotlink . pnVarPrepForOS($lid.$shotext));
}
// if exsists delete thumbnail
- if(file_exists(pnVarPrepForOS($screenshotlink. 'tn_' .$lid.$shotext)))
+ if(file_exists($screenshotlink . pnVarPrepForOS('tn_' .$lid.$shotext)))
{
- unlink(pnVarPrepForOS($screenshotlink. 'tn_' .$lid.$shotext));
+ unlink($screenshotlink . pnVarPrepForOS('tn_' .$lid.$shotext));
}
}
}
@@ -628,11 +628,11 @@
// create filename for the screenshot tempfile
$ext = strtolower( eregi_replace( '.*\.', '', $filenamesc ) );
- $filenamesc = pnVarPrepForOS($screenshotlink . $lid . '.' . $ext);
+ $filenamesc = $screenshotlink . pnVarPrepForOS($lid . '.' . $ext);
// create filename for the thumbnail tempfile
$ext = strtolower( eregi_replace( '.*\.', '', $filenametn ) );
- $filenametn = pnVarPrepForOS($screenshotlink . 'tn_'. $lid) ;
+ $filenametn = $screenshotlink . pnVarPrepForOS('tn_'. $lid) ;
//--> move screenshot
move_uploaded_file($tempnamesc,$filenamesc);
@@ -1411,14 +1411,14 @@
//check if screenshot and thumbnail exsists
foreach($screenshot_extensions as $ext)
{
- if((true === is_file(pnVarPrepForOS($screenshotlink.$lid.$ext))))
+ if((true === is_file($screenshotlink . pnVarPrepForOS($lid.$ext))))
{
- $screenshot = pnVarPrepForOS($screenshotlink.$lid.$ext);
+ $screenshot = $screenshotlink . pnVarPrepForOS($lid.$ext);
}
- if((true === is_file(pnVarPrepForOS($screenshotlink."tn_".$lid. $ext))))
+ if((true === is_file($screenshotlink . pnVarPrepForOS("tn_".$lid. $ext))))
{
- $thumbnail = pnVarPrepForOS($screenshotlink."tn_".$lid.$ext);
+ $thumbnail = $screenshotlink . pnVarPrepForOS("tn_".$lid.$ext);
}
$image = array('screenshot' => $screenshot, 'thumbnail' => $thumbnail);
@@ -1993,7 +1993,7 @@
$captcha_temp_path = pnModGetVar('downloads', 'captcha_cache');
- $mycaptcha = pnVarPrepForOS($captcha_temp_path.'cap_'.$img.'.jpg');
+ $mycaptcha = $captcha_temp_path . pnVarPrepForOS('cap_'.$img.'.jpg');
if (!is_file($mycaptcha))
{
@@ -2027,15 +2027,16 @@
// captcha life time is limited to 15s
$captcha_expires_after = 15;
- $tmp_dir = dir(pnVarPrepForOS($captcha_temp_path));
+ // $tmp_dir = dir(pnVarPrepForOS($captcha_temp_path));
+ $tmp_dir = dir($captcha_temp_path);
// clean up
while(false !==($entry = $tmp_dir->read()))
{
- if(mktime() - filemtime(pnVarPrepForOS($captcha_temp_path.$entry) ) > $captcha_expires_after)
+ if(mktime() - filemtime($captcha_temp_path.pnVarPrepForOS($entry) ) > $captcha_expires_after)
{
if ($entry != '.' && $entry != '..' && $entry != '.htaccess')
{
- unlink(pnVarPrepForOS($captcha_temp_path.$entry));
+ unlink($captcha_temp_path.pnVarPrepForOS($entry));
}
}
}
@@ -2105,7 +2106,7 @@
$upload_folder = pnModGetVar('downloads','upload_folder');
// prepare the path
- $myfile['url'] = pnVarPrepForOS($upload_folder.$myfile['url']);
+ $myfile['url'] = $upload_folder . pnVarPrepForOS($myfile['url']);
// check for exsitance
$filepointer = is_file($myfile['url']);
editiert von: katze, 26.01.2009, 15:28 Uhr -
- rank:
-
Cmods-Team
- registered:
- July 2005
- Status:
- offline
- last visit:
- 03.01.10
- Posts:
- 865
Schuldig im Sinne der Anklage
Ich habs schlichtweg vergessen.
Würdest du mir die geänderten Dateien zukommen lassen?
Lindbergh@cmods-dev.de
Danke & Gruß
Signatur--------------------------------
Mein Wunschzettel
Unaufgeforderte Supportanfragen via Skype werden nicht beantwortet!