Php 命令mv移动文件不工作:-mv:无法移动:没有这样的文件或目录
下面的代码片段简要解释了代码:-Php 命令mv移动文件不工作:-mv:无法移动:没有这样的文件或目录,php,linux,command-line-interface,Php,Linux,Command Line Interface,下面的代码片段简要解释了代码:- define('UPLOAD_DONE_PATH','');//This comes from config $uploaddir = '/home/upload';//This comes as functn parameter $uploaddir_done = $uploaddir.UPLOAD_DONE_PATH; $uploaddir_done = str_replace("//","/",$uploaddir_
define('UPLOAD_DONE_PATH','');//This comes from config
$uploaddir = '/home/upload';//This comes as functn parameter
$uploaddir_done = $uploaddir.UPLOAD_DONE_PATH;
$uploaddir_done = str_replace("//","/",$uploaddir_done);
$file_array=array();
if (is_dir($uploaddir)) {
if ($dh = opendir($uploaddir)) {
while (($allfile = readdir($dh)) !== false) {
if ($allfile == '.' or $allfile == '..') continue;
{
if (strpos($allfile, 'abc') !== false ) {
$file_array[]=$allfile;
}
}
}
closedir($dh);
}
}
...//some code
foreach ($file_array as $key => $csvfile) {
//Process the file.
//Move the processed file
// Method 1 : Not Working
// copy file from upload to processed folder
if (copy($uploaddir.$csvfile,$uploaddir_done.$csvfile)) {
unlink($uploaddir.$csvfile);
$this->log->info("CSV file is copy into destination folder.".PHP_EOL);
}else{
$this->log->info("CSV file is not copy into destination folder.".PHP_EOL);
}
//Method 2 : Also not working(Move with shell_exec)
$from = $uploaddir.$csvfile;
$fromSpace = $from;
$to = $uploaddir_done.$csvfile;
$toSpace = $to;
$fromSpace = preg_replace('/\s/i', '\\ ', $fromSpace);
$toSpace = preg_replace('/\s/i', '\\ ', $toSpace);
$ch_permissions = 'sudo chmod +755 -R '.$fromSpace;
$mv_cmd = 'mv '.$fromSpace.' '.$toSpace;
$ch_permission_result = shell_exec($ch_permissions);
$file_move_result = shell_exec($mv_cmd);
}
}
在这两种情况下,移动文件都会导致错误“mv:无法将“/home/upload/abc 09.25.2020.csv”移动到“/home/upload/processed/abc 09.25.2020.csv”:没有这样的文件或目录
"
这似乎是由于文件名中的空格造成的。如何解决此问题?只需在文件周围添加引号即可
$mv_cmd='mv'.$fromSpace.''.$toSpace.'''代码>