PHP后台上传
我使用的表单允许我通过本地文件夹和FTP上传文件。 所以我想通过ftp移动文件(已经可以使用了) 由于性能原因,我选择在后台运行此进程,因此我使用nfcftpput(linux) 在CLI中,以下命令工作正常: ncftpput-b-u名称-p密码-p 1980 127.0.0.1/upload//home/Downloads/upload.zip (知道b参数触发后台进程) 但是,如果我通过PHP运行它,它将不起作用(如果没有-b参数,它会起作用) PHP代码:PHP后台上传,php,upload,background,Php,Upload,Background,我使用的表单允许我通过本地文件夹和FTP上传文件。 所以我想通过ftp移动文件(已经可以使用了) 由于性能原因,我选择在后台运行此进程,因此我使用nfcftpput(linux) 在CLI中,以下命令工作正常: ncftpput-b-u名称-p密码-p 1980 127.0.0.1/upload//home/Downloads/upload.zip (知道b参数触发后台进程) 但是,如果我通过PHP运行它,它将不起作用(如果没有-b参数,它会起作用) PHP代码: $cmd = "ncftppu
$cmd = "ncftpput -b -u name -p password -P 1980 127.0.0.1 /upload/ /home/Downloads/upload.zip";
$return = exec($cmd);
请尝试以下操作之一: 1) 使用命令$cmd=“ncftpput-b-u name-p password-p 1980 127.0.0.1/upload//home/Downloads/upload.zip&”; (注意&)
2) 尝试php的proc_open函数尝试在命令末尾添加“&”,这将在linux级别上实现。如果“上一个”不起作用,也可以尝试shell_exec()。这包含如何正确生成后台进程的信息。请注意,提供此功能的扩展可能在您的PHP安装中未激活。对我来说,最好的解决方案是以下代码:
function executeBackgroundProces($command) {
$command = $command . ' > /dev/null 2>&1 & echo $!';
exec ( $command, $op );
$pid = ( int ) $op [0];
if ($pid != "")
return $pid;
return false;
}
我运行的命令是:“ls bashfile”
bash文件包含诸如上载和删除由分隔的原始文件的命令;
我觉得这很好你在php网页中有脚本,你想启动后台进程吗?-永远不会发生!或者直接在服务器中编写php脚本,比如:/usr/bin/php-f/path/to/script.php-crontab like?