2015-05-03 49 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