使用 API Laravel 时出现文件放置错误

Posted

技术标签:

【中文标题】使用 API Laravel 时出现文件放置错误【英文标题】:File Put Error while consuming API Laravel 【发布时间】:2020-04-30 02:27:42 【问题描述】:

我在 Laravel 中使用 API 时遇到问题。以下是错误:

在 HandleExceptions->handleError(2, 'file_put_contents(/var/www/html/trazoo/storage/framework/cache/data/cb/f4/cbf4899d461098a11f02d3b4c1bdbcf7d6c3a5d5): 无法打开流: 没有这样的文件或目录', '/var/www/html/trazoo/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php', 122, array('path' => '/var/www/html/trazoo/storage/framework/缓存/数据/cb/f4/cbf4899d461098a11f02d3b4c1bdbcf7d6c3a5d5', '内容' => '1578913060i:0;', '锁' => true)) 在 file_put_contents('/var/www/html/trazoo/storage/framework/cache/data/cb/f4/cbf4899d461098a11f02d3b4c1bdbcf7d6c3a5d5', '1578913060i:0;', 2) 在 Filesystem.php 第 122 行 在 Filesystem->put('/var/www/html/trazoo/storage/framework/cache/data/cb/f4/cbf4899d461098a11f02d3b4c1bdbcf7d6c3a5d5', '1578913060i:0;', true) 在 FileStore.php 第 66 行

但是缓存/数据中有很多文件夹......但不是这个“f4”。

也在 FileSystem.php 中

public function put($path, $contents, $lock = false)

    return file_put_contents($path, $contents, $lock ? LOCK_EX : 0);

不知道这个 LOCK_EX 是什么意思。这是否会造成任何问题,我不知道。

那么任何人都可以请建议,问题出在哪里。

谢谢

【问题讨论】:

【参考方案1】:

该文件夹可能不可写,请检查缓存文件夹的权限。文件放置内容可能会创建文件,并且需要权限才能执行此操作。 https://www.php.net/manual/en/function.file-put-contents.php

from doc:如果文件名不存在,则创建文件。否则,将覆盖现有文件,除非设置了 FILE_APPEND 标志。

也有帮助:How to set up file permissions for Laravel?

【讨论】:

权限还可以,而且每天都有文件夹创建...但是不知道为什么具体的api会出现这个错误。 只是一个不相关的建议,在处理异常时会发生此错误,我认为其他地方存在异常,您应该关注这一点。这是整个错误消息吗?

以上是关于使用 API Laravel 时出现文件放置错误的主要内容,如果未能解决你的问题,请参考以下文章

mpdf 文件 laravel 5.8 , 播放某些pdf文件而其他正常播放时出现错误 使用框架laravel执行

尝试使用 AJAX 在 Laravel 中上传单个文件时出现数组到字符串转换错误

Laravel 5.2 迁移第二个表时出现数据库迁移错误

从 json i laravel 获取数据时出现错误异常

使用 GetComputerObjectNameW win API 时出现编译错误

启动活动时出现Google Maps API密钥错误