无法将文件移动到已安装的网络共享文件夹

时间:2018-08-08 08:39:15

标签: php windows apache xampp

我正在尝试将文件上传到Office网络共享文件夹中,我具有访问共享文件夹的用户帐户的权限,我使用UNC路径通过move_upload_file函数直接上传文件,但无法正常工作,我收到了此错误。 / p>

  

警告:move_uploaded_file(\\ 17.105.103.8 \ History \ TQ_Books \ 1.PDF):无法打开流:第144行的C:\ xampp \ htdocs \ bookshelfs \ app \ controllers \ Books.php中的参数无效< / p>

经过一些搜索后,我将该共享文件夹安装到了我的电脑上,我直接使用该安装的驱动器名称上传文件,然后出现此错误

  

警告:move_uploaded_file(Z:\ 30.PDF):无法打开流:C:\ xampp \ htdocs \ bookshelfs \ app \ controllers \ Books.php中的第437行没有此类文件或目录

我没有发现问题所在,如何解决此问题?我需要使用apache服务进行一些配置吗?我正在尝试SMP协议,但是对我来说很难理解。

更新

$bookExt = pathinfo($_FILES['select_book']['name'], PATHINFO_EXTENSION);
$filename = ltrim($_POST['book_no'], '0') . '.' . $bookExt;
$tmpFilename = $_FILES['select_book']['tmp_name'];
$targetDir = '\\\\17.105.103.8\\History\\TQ_Books\\'; //before mount'
$targetDir = 'Z:'; //after mount
$fileTarget = $targetDir . $filename;

if (move_uploaded_file($tmpFilename, $fileTarget)) {
     die("success, uploaded");
} else {
     die("not uploaded");
}

1 个答案:

答案 0 :(得分:0)

经过几天的研究,我找到了解决方案。 PHP无法直接与网络共享文件夹对话,在这种情况下,您必须将网络驱动器安装到系统上。如果安装驱动器后仍然无法使用,因为问题出在这里是本地系统用户帐户登录的Apache服务器,因此您必须通过Apache服务将其更改为系统用户帐户。 (您可以在Windows服务上找到apache服务),您必须通过管理员打开Windows服务,然后才能更改帐户。

然后,您可以在PHP文件上运行此代码以进行挂载。全部设置(重新启动计算机后,您可以看到已安装的驱动器)

exec("net use Z: \\\\netowrk_ip\\folder /user:{sharefolder_domine}\{sharefolder_username} {sharefolder_password} /persistent:no 2>&1", $output, $return_var);

var_dump($output);

我希望这个答案对其他人有帮助。