php - 上传文件不再在公共网站上工作,但在本地工作?
问题描述
我主要在 C# 中工作,但继承了一个运行良好的 php / laravel 应用程序。它已经工作了很长一段时间,我从未遇到过这个问题。今天上午 11 点左右,我们的网站不再上传图片/标准文件。
我们在安装了 IIS 和 PHP 的 Windows 环境中运行。我们的代码允许您上传图片并存储一些附加信息。PHP / Laravel(甚至检查了 IIS 日志、事件查看器和 laravel 日志)并且没有发生错误。我们的应用程序只是坐在那里尝试上传文件。最终我们的屏幕只是刷新并且没有上传文档或文件。如果我在我的机器上本地尝试相同的测试(因为我们开发了它)它工作正常并且上传发生。
我知道需要确保对文件位置的权限,但就像我说的那样,这在过去一年半内运行良好。由于该站点是匿名访问,我们使用 IUSR 帐户,并为该用户提供了所涉及目录(我们存储图像文档或文件的目录)的正确权限。我还确保没有 Windows 更新导致此问题,但是最后一次 Windows 更新是在 1/24 并且我们的网站当天运行良好,直到本月 28 日。
例如代码如下所示:
// Audit Documents: Label Image
if ($request->hasFile('audit_label_image')) {
$document = new Document();
$document->title = 'Document for Audit with id ' . $audit->audit_id;
$document->filetype = $request->audit_label_image->extension();
$document->save();
$audit_document = new AuditDocument();
$audit_document->audit_id = $audit->audit_id;
$audit_document->document_id = $document->document_id;
$audit_document->type_id = 63; // "Label Image" document type
$audit_document->save();
$request->audit_label_image->storeAs('audit', $document->document_id . '.' . $request->audit_label_image->extension() );
}
我们的应用程序有一个保存的主记录(审计),然后它会保存与审计相关的其他对象。那是一个文档,然后我们将该审计的引用存储到文档(因此上面的对象AuditDocument
)。当我们单击 UI 上的“保存”按钮时,它会旋转轮子,就像它试图保存图像/文档一样。没有控制台错误或网络错误......它最终刷新屏幕只是在我们的审计表(sql server)中保存了实际的“审计”对象,但是文档、审计文档和图像(物理文件)不是保存。我什至尝试编写一个小测试来上传文件,但我们一无所获。
我不知道它是否收到 HTTP 500 错误(因为我们没有收到任何错误)。如前所述,这一切最近都停止了工作,但我们没有进行代码更改来导致这种情况。不确定我还能在哪里查看或在 php / laravel 方面有任何可以帮助我的指针?
更新
我们的任何表格enctype="multipart/form-data"
都导致了这个问题。我们删除此行的那一刻,一切正常,但文件当然不会发布。过去是否有其他人在 IIS 上使用 PHP / Laravel 遇到过这个问题?我们已授予 IUSR、IIS_USERS、IIS_WPG、NETWORK、SYSTEM、AUTHENTICATED 用户权限,所以权限方面我们应该没问题...
解决方案
问题已解决 - 奇怪的是,我必须进入C:\Windows\Temp
并清除该目录,其中包含 PHP 生成且从未删除的 80 gigs 临时文件。我清除它的那一刻,一切都开始工作了。奇怪的是,它所在的服务器仍然有足够的空间(超过 20 个演出)所以我不知道这个文件夹是否有一些限制?
无论如何,我现在很好!
推荐阅读
- javascript - 使用 v-if Vue 在 v-for 中添加一些逻辑
- java - JAVA - 这些之间有什么区别?
- tomcat - Tomcat 上的战争部署,出现错误 java.lang.ClassNotFoundException: grails.async.web.AsyncGrailsWebRequest
- python - 如何在 Python 中格式化对 Blogger API 的获取请求?
- python - 应用于 Serie 的 max 函数
- java - 用户侧网络消费
- laravel - 有谁熟悉 Laravel mix.webpackConfig 吗?安装 vuetify 后出现问题
- python - 匹配python正则表达式中示例(例如)的所有变体
- sbt - build.sbt 中的“跳过测试”有什么作用?
- node.js - Docker Container 中的 NodeJS fs.watch 检测到两次更改