我在Windows 10上。我使用的是laragon dev环境,该环境包装了Apache。
我正在尝试运行以下耗时调用来下载文件:
$downloadClient = new Client(['base_uri' => 'https://vendor/region']);
$downloadResponse = $downloadClient->request('GET','endpoint/file_url.txt',['sink' => __DIR__]);
我不断得到以下回报:
致命错误:未捕获RuntimeException:无法使用w +模式打开C:\ laragon \ www \ act:fopen(C:\ laragon \ www \ act):无法打开流:C:\ laragon \ www \中的权限被拒绝act \ vendor \ guzzlehttp \ psr7 \ src \ functions.php:303堆栈跟踪:#0 [内部函数]:GuzzleHttp \ Psr7 {closure}(2,'fopen(C:\ larago ...','C:\ laragon \ www \ ...',311,数组)#1 C:\ laragon \ www \ act \ vendor \ guzzlehttp \ psr7 \ src \ functions.php(311):fopen('C:\ laragon \ www \。 ..','w +')#2 C:\ laragon \ www \ act \ vendor \ guzzlehttp \ psr7 \ src \ LazyOpenStream.php(37):GuzzleHttp \ Psr7 \ try_fopen('C:\ laragon \ www \ .. 。','w +')#3 C:\ laragon \ www \ act \ vendor \ guzzlehttp \ psr7 \ src \ StreamDecoratorTrait.php(31):GuzzleHttp \ Psr7 \ LazyOpenStream-> createStream()#4 C:\ laragon \ www \ act \ vendor \ guzzlehttp \ psr7 \ src \ StreamDecoratorTrait.php(136):GuzzleHttp \ Psr7 \ LazyOpenStream-> __ get('stream')#5 C:\ laragon \ www \ act \ vendor \ guzzlehttp \ guzzle \ src \ Handler \ CurlFactory.php(395):GuzzleHttp \ Psr7 \ LazyOpenStream-> write('在C:\ laragon \ www \ act \ vendor \ guzzlehttp \ psr7 \ src中\ functions.php,第303行
我已经尝试向我的用户帐户授予“完全控制”权限,这就是Laragon的运行方式。我还尝试将所有结果授予IUSR和目录中的“所有用户”,并显示现在的结果。
感谢您的帮助。
您将__DIR__
传递为"sink"写入文件的位置。那是目录。您不能像将文件一样将数据写入目录。尝试使用文件名。
$downloadClient = new Client(['base_uri' => 'https://vendor/region']);
$downloadResponse = $downloadClient->request('GET','endpoint/file_url.txt',
['sink' => "file_url.txt"]);