我有一个 PHP 脚本,用户可以在其中上传图像。该图像存储在临时目录中并返回给用户。然后,用户可以使用 javascript 界面来裁剪图像。(x1,y2)(x2,y2) 被发送到用于裁剪图像的脚本。然后将其返回给用户进行另一次预览和/或裁剪。一旦用户足够满意,他将单击“保存”。临时文件被复制到原始文件并删除临时文件。这些不是每个用户的图像,而是设备的图像。组织中的任何用户都可以替换任何设备图像。这种方法很好,但有几个问题:
1) 假设用户上传了一张图片进行预览,但随后关闭了浏览器窗口。我将留下一个临时文件。这可能会成为一个问题。当然我可以让 CRON 清理它们,但理论上我可以拥有大量临时文件(这很难看)。cron 还可以在编辑期间删除用户的临时文件。
2)为了处理数字1,我总是可以为每件设备创建一个临时文件,例如equip1.temp 和equip1.jpg。所有上传都存储在equip1.temp 中,所有提交都转移到equip1.jpg。如果两个用户试图同时上传同一设备的图片,这可能会搞砸他们(极不可能 + 不是问题,但仍然很难看)
3)我总是可以来回传递图像(用户“上传”图像,它被回显为<img src="base64....." />
. 生成的编辑 + 原始 base64 字符串被发送回 PHP 进行处理)。此解决方案缓解了临时文件问题,但我注意到来回发送高分辨率图像需要几秒钟。
你会如何处理这种情况?