我正在尝试将文件上传到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");
}
答案 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);
我希望这个答案对其他人有帮助。