PHP重命名错误:系统找不到指定的路径.(代码:3)


PHP Rename error : The system cannot find the path specified. (code: 3)

我想将excel文件从一个文件夹移动到另一个文件夹,我使用了以下代码行

 $approve_employee_id = $this->input->post('approve_employee_id');
        $approve_month_id = $this->input->post('approve_month_name');
        $approve_year_name = $this->input->post('approve_year_name');
        $approve_employee_username = $this->input->post('approve_employee_username');
        $folder_name = $approve_month_id.$approve_year_name;
        rename(".files/".$folder_name."/un_approved/".$approve_employee_username, ".files/".$folder_name."/approved/".$approve_employee_username);

我一直从系统得到以下错误:

A PHP Error was encountered
Severity: Warning
Message: rename(.files/January2013/un_approved/HS0103,.files/January2013/approved/HS0103): The system cannot find the path specified. (code: 3)
Filename: controllers/time_sheet.php
Line Number: 279

我的目录树如下:C:'xampp'htdocs'timesheet'files'January2013'approved为已批准,C:'xampp'htdocs'timesheet'files'January2013'un_approved为未批准

请建议最好的方法来实现这一点?

也许你应该使用" ./files ",而不是" .files "…?

然而,我建议将数据文件的位置与php脚本的位置解耦…因此,我应该输入:

...
$basedir = $_SERVER['DOCUMENT_ROOT'] . "/timesheet/files/$folder_name";
rename("$basedir/un_approved/$approve_employee_username", "$basedir/approved/$approve_employee_username);

使用__DIR__。"。/. ./yourfolder/"

我只是坚持使用完整路径,因为这样更容易理解…

例如

dirname(__FILE__).'/files/etc/etc/path.yourfile';

你可以通过

dirname(dirname(__FILE__)).'/files/etc/etc/path.yourfile'; and so on

你可以试试这个…

$files_folder = dirname(__FILE__); //or go up as required.
然后

 rename($files_folder."/".$folder_name."/un_approved/".$approve_employee_username, $files_folder."/".$folder_name."/approved/".$approve_employee_username);