gpt4 book ai didi

php - 你如何处理PHP中的临时图片上传?

转载 作者:可可西里 更新时间:2023-11-01 00:07:49 27 4
gpt4 key购买 nike

我正在用 PHP 创建一个在线游戏,用户可以在其中创建可玩的角色。每个角色都可以有一张用户上传的肖像。一个玩家可以同时拥有多个角色,他们的头像可以随时更换。当然,图片必须调整大小并重新压缩以避免文件过大。这是我的问题:

当玩家更改他的数据(其中包括图片),然后点击“保存”时,服务器端验证就会启动。它会检查诸如非唯一角色名称、空的必填字段等内容。如果有任何错误找到了,就会显示出来。在这种情况下,表格应该预先填充玩家输入的数据,因此他只需更改错误的位,而不是重新输入所有内容。但是这种“临时”状态的图片怎么保存呢?

我无法预填充文件上传字段,浏览器不允许这样做。如果我将它保存在一个临时文件中,那么在某个时候必须清理图片,因为玩家可以简单地关闭他的浏览器并中止整个过程。那应该是什么时候?我应该为临时文件选择什么文件名?如果玩家在两个浏览器选项卡中打开相同的角色进行编辑,它们应该不会冲突(每个应该有自己的副本)。

你会如何解决这个问题?

最佳答案

我会将文件保存到一个临时位置,并在文件名中存储唯一标识符和当前时间戳。然后将文件名放入用户的 session 中。当用户成功创建或更新他们的帐户时,您将图像文件保存到其永久位置并删除临时文件。您可以运行一个 cron 进程来扫描临时目录并检查时间戳,删除任何早于您的到期时间(可能是一个小时)的文件。

如果您无法运行 cron 作业,您总是可以在每次成功创建/更新验证时启动目录清理。这可能有点低效(额外的目录读取和每次成功提交可能的文件操作),但除非您处理大量流量,否则您可能甚至不会注意到。

关于php - 你如何处理PHP中的临时图片上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1428941/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com