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

Php 无法将文件移动到已装载的网络共享文件夹,php,windows,apache,xampp,Php,Windows,Apache,Xampp,我正在尝试将文件上载到office网络共享文件夹中,我有权使用我的用户帐户访问共享文件夹,我使用UNC路径通过move_upload_file功能直接上载文件,但不起作用。我收到此错误 警告:move_uploaded_文件(\\17.105.103.8\History\TQ_Books\1.PDF):无法打开流:第144行的C:\xampp\htdocs\bookshelfs\app\controllers\Books.php中的参数无效 经过一些搜索后,我在我的电脑上挂载了共享文件夹,我直接

我正在尝试将文件上载到office网络共享文件夹中,我有权使用我的用户帐户访问共享文件夹,我使用UNC路径通过move_upload_file功能直接上载文件,但不起作用。我收到此错误

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

经过一些搜索后,我在我的电脑上挂载了共享文件夹,我直接使用挂载的驱动器名上传文件,然后我得到了这个错误

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

我不明白它出了什么问题,如何解决这个问题?我需要对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");
}

经过几天的研究,我找到了解决办法。PHP无法直接与网络共享文件夹通信。在这种情况下,您必须将网络驱动器装载到系统中。如果装载驱动器后仍然无法工作,因为问题在于Apache服务器是通过本地系统用户帐户登录的,因此您必须通过Apache服务将其更改为您的系统用户帐户。(您可以在windows服务上找到apache服务)您必须通过管理员打开windows服务,然后只有您可以更改帐户

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


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

请给我们看相关代码不确定,但这篇文章可能会有所帮助?基本上,当您将驱动器映射到Windows时,它是基于“每个用户”的。Apache使用的用户与您使用的用户不同,因此该驱动器未映射到Apache。可能存在重复的
exec("net use Z: \\\\netowrk_ip\\folder /user:{sharefolder_domine}\{sharefolder_username} {sharefolder_password} /persistent:no 2>&1", $output, $return_var);

var_dump($output);