windows环境下文件保存到网络盘符失败,请教如何解决
1. 运行环境
laravel版本: 9
PHP 版本:8.1.20
操作系统 : windows server 2012
2. 问题描述
在windows server环境下运行,将文件保存到网络盘失败,
这之前能够正常保存文件,但是重启之后就不能保存了,代码如下:
1.使用fopen函数
$file_path = env('FILE_PATH','T:\\FileList\\ESignFile\\');
$fp = fopen($file_path.'text.txt','w');
fwrite($fp,'123456');
fclose($fp);
//报错
//ErrorException: fopen(T:\\FileList\\ESignFile\\text.txt): Failed to open stream: No such file or directory in F:\\app\\Modules\\OpenAPI\\Http\\Controllers\\TestController.php:60
- 使用laravel的Storage
// T盘是windows上的网络盘符
Storage::disk('T')->put('text.txt','123456');
//报错:
//League\\Flysystem\\UnableToCreateDirectory: Unable to create a directory at T:\\FileList\\
T盘是这样的
3. 我的猜测
我猜测是权限的问题,如下所示,我尝试过修改但是仿佛没什么用,文件夹属性如下:
我还傻傻的把路径的 反斜杠换成斜杠也没用
4. 请教
关于文件保存失败的内容我搜索出来都是在linux环境下的权限问题
在windows环境下保存到网络盘一点没看到,也有可能是我的搜索方法错了
发问题请教怎么解决,指条明路也行,因为我现在确实是不知道该如何下手了
添加个快捷方式的目录试试
用FTP
本地磁盘和网络盘符的协议不一样
肯定不能直接读写的, 你用这个试试看能不能读写
composer require robgridley/flysystem-smb