【问题标题】:unable to move files to mounted network share folder无法将文件移动到挂载的网络共享文件夹
【发布时间】:2019-01-15 10:55:35
【问题描述】:

我正在尝试将文件上传到办公室网络共享文件夹,我有权访问我的用户帐户访问共享文件夹,我使用 UNC 路径直接通过 move_upload_file 函数上传文件,它不起作用我收到此错误。

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

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

警告: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");
}

【问题讨论】:

标签: php windows apache xampp


【解决方案1】:

经过几天的研究,我得到了解决方案。 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);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 2013-07-05
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多