0

我正在创建一个网站(PHP),用户可以在其中将图片上传到某种数据库,当他们离开页面时,他们的图片会被删除。其他用户(在另一个页面中)将能够看到所有未删除的图片。

我想过这样做:

创建一个文件夹(让我们称之为“图片”)并用数字(、、、等)为上传的每张图片命名1.jpg2.jpg3.jpg用户离开页面时,图片将自行删除(如何??)以及下一张何时需要要上传照片,网站会搜索第一个未拍摄的号码。

如果有人有更好的主意,我想听听,否则:

  1. 如何构建一个函数,从仅填充 #.jpg 文件的文件夹中找到第一个未使用的数字?(以及我能做些什么来保护自己免受双重数字的影响)

  2. 用户离开页面时如何删除照片?

  3. 如何显示目录中的随机照片?

在这些将得到回答之后:我还希望查看图片的用户能够单击 1、2 或 3,并向上传图片的人显示 1s 2s 和 3s 的计数(他显然仍然打开窗口)。我该怎么做?(寻找没有SQL db的聪明方法)

想法:将文件名更改为#_1s_2s_3s.jpg(例如:1_0_0_1.jpg图片 1,点击次数为 0,0,1),但这会使所有其他问题变得更加困难......

4

1 回答 1

0

除非有明确的注销事件(在这种情况下答案很简单),否则我将假设“用户离开”只能根据“用户已停止访问 x 时间”来定义。即这是一个非常典型的基于会话/超时的情况。例如,会话以相同的方式运行。每次用户访问另一个页面时,会话超时都会延长,但如果它保持陈旧 x 时间,最终会被清除。

我会为您的想法建议一个类似的方案:

  1. 第一次访问时,用户在 cookie 中获得一个随机 id,您为该 id 存储数据库记录。
  2. 在每次页面加载时,您都会更新last_seen数据库中该用户 ID 的时间戳。
  3. 您将任何上传的图像与数据库中的该 ID 相关联。
  4. last_seen如果比 x 旧,您会定期清除任何用户 id 及其关联的图像。这可以实现为 cron 作业或每加载 x 个页面时或多或少随机运行的任务。

您可以简单地编写一个自定义会话处理程序,作为其垃圾收集周期的一部分清除图像。对于初学者,请参阅http://php.net/session_set_save_handler 。

于 2012-10-02T03:22:57.683 回答