2016-02-05 57 views
-1

所以我目前正在尝试创建一个代码,它只是创建并发布文件到我的webroot,修改并写入该文件,然后最终使用move_uploaded_file()move_uploaded_file()不起作用,但文件已上传?

将文件的位置更改为另一个目录/文件夹

这是到目前为止我的代码

$myfile = fopen($_POST['title'].".txt", "w"); 
move_uploaded_file($myfile,'$dir/$title.txt'); 
fwrite($myfile, $_POST['textarea11']); 
fclose($myfile); 

的代码不工作,我已经试过呼应move_uploaded_file()并没有返回,但是文件上传,但它的位置,就没有改变。

$dir被定义为$dir = __DIR__.'/../uploads/';和$标题定义为$title = $_POST['title'];

+0

'move_uploaded_file()'适用于通过多部分表单上传的文件。要在目录之间移动本地文件,您需要修改以下讨论的方式:http://stackoverflow.com/questions/19139434/php-move-a-file-into-a-different-folder-on-the-server – Rehmat

+0

谢谢@rehmat! –

回答

0

更改您的指定代码为

$dir = __DIR__.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'uploads'; 
    $myfile = fopen($_POST['title'].".txt", "w"); 
    move_uploaded_file($myfile,"$dir".DIRECTORY_SEPARATOR."$title.txt"); 
    fwrite($myfile, $_POST['textarea11']); 

在你的代码

move_uploaded_file($myfile,'$dir/$title.txt'); 

PHP变量$目录和$标题值不来了。并且$ dir的值由'/'组成,并且您还要添加一个以创建完整文件路径。

始终使用目录分隔符在所有操作系统中运行。某些操作系统使用'/',某些操作系统使用'\'。