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
  1. 使用laravel的Storage
// T盘是windows上的网络盘符
Storage::disk('T')->put('text.txt','123456');
//报错:
//League\\Flysystem\\UnableToCreateDirectory: Unable to create a directory at T:\\FileList\\

T盘是这样的
windows环境下文件保存到网络盘符失败,请教如何解决

3. 我的猜测

  1. 我猜测是权限的问题,如下所示,我尝试过修改但是仿佛没什么用,文件夹属性如下:
    windows环境下文件保存到网络盘符失败,请教如何解决

  2. 我还傻傻的把路径的 反斜杠换成斜杠也没用

4. 请教

关于文件保存失败的内容我搜索出来都是在linux环境下的权限问题
在windows环境下保存到网络盘一点没看到,也有可能是我的搜索方法错了
发问题请教怎么解决,指条明路也行,因为我现在确实是不知道该如何下手了

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 6
随波逐流

添加个快捷方式的目录试试

5个月前 评论
wait_fortune (楼主) 5个月前

用FTP

5个月前 评论
wait_fortune (楼主) 5个月前

本地磁盘和网络盘符的协议不一样

肯定不能直接读写的, 你用这个试试看能不能读写

composer require robgridley/flysystem-smb

use Icewind\SMB\BasicAuth;
use Icewind\SMB\ServerFactory;
use League\Flysystem\Filesystem;
use RobGridley\Flysystem\Smb\SmbAdapter;

$factory = new ServerFactory();
$auth = new BasicAuth('username', 'domain/workgroup', 'password');
$server = $factory->createServer('host', $auth);
$share = $server->getShare('name');

$filesystem = new Filesystem(new SmbAdapter($share));
5个月前 评论
wait_fortune (楼主) 5个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!