2015-05-03 48 views
0

我需要在放置文件的上一級目錄中存儲臨時映像。我知道../方法,但這種情況下,它不工作:無法在目錄上進行升級

<?php 
if((!empty($_FILES["img"])) && ($_FILES['img']['error'] == 0)) { 
    $filename = basename($_FILES['img']['name']); 
    $ext = substr($filename, strrpos($filename, '.') + 1); 
    if (($ext == "jpg") || ($ext == "jpeg") || ($ext == "png") || ($ext == "gif") && ($_FILES["img"]["type"] == "image/jpeg") || ($_FILES["img"]["type"] == "image/png") || ($_FILES["img"]["type"] == "image/gif") && 
    ($_FILES["img"]["size"] < 300000)) { 

    //HERE IS WHERE I SET THE FINAL DIRECTORY 

     $newname = dirname(__FILE__).'../temp/'.time(); 

     if (!file_exists($newname)) { 
     if ((move_uploaded_file($_FILES['img']['tmp_name'],$newname.'.'.$ext))) { 
      echo "Hecho! Guardada como: ".$newname; 
     } else { 
      echo "Error: Se produjo un problema durante la subida".$newname; 
     } 
     } else { 
     echo "Error: El archivo ".$_FILES["img"]["name"]." ya existe"; 
     } 
    } else { 
    echo "Error: Tamaño máximo excedido (300kb) o formato erróneo (jpg, png, gif)"; 
    } 
} else { 
echo "Error: No existe el archivo"; 
} 
?> 

面前的dirname(__FILE__)並不讓我正確地設置目錄,因爲它試圖找到/var/www/html/panel/actions../temp/1430671269.jpg

回答

1

如果此代碼:

dirname(__FILE__).'../temp/'.time(); 

產生這樣的結果:

/var/www/html/panel/actions../temp/1430671269.jpg 

然後它可能遵循代碼:

dirname(__FILE__).'/../temp/'.time(); 

會產生結果:

/var/www/html/panel/actions/../temp/1430671269.jpg 

其中,如果你想要去的一個目錄,應該做的伎倆。

基本上,如果您需要向該字符串添加斜線,請向該字符串添加斜槓。

+0

謝謝。我會在5分鐘內打勾。 – Biomehanika