这更像是一个概念性问题而不是基础编程技术。
当我正在创建新记录(比如添加记录屏幕)时,我还没有记录ID。同样的屏幕也可以选择使用SWFUpload上传图片 - 这意味着图片会立即上传。
由于记录ID尚不可用,因此在我点击保存按钮之前,无法将此特定图片与数据库中的记录相关联。
现在假设,在上传图片后,我离开了添加记录屏幕,在服务器上留下了一个孤立的图片文件。
我可以回到添加记录屏幕并继续执行此操作...并使用未链接/未使用的图像占用大量服务器空间。
你会如何解决这个问题?应该在这里强制执行什么逻辑流程?
一个选项(我现在正在尝试)是将上传的图像存储在 tmp 文件夹中并将其移出并在创建记录后将它们放在另一个适当的文件夹中(将图片链接到最后的休息处)。然后,运行夜间cron作业以清除tmp文件夹中的剩余物。
还有其他更明亮,更优雅的方法吗?
谢谢,
米^ E
答案 0 :(得分:3)
有点老问题,所以你可能已经弄明白了,但这就是我如何解决它:
我希望你能得到这个想法,如果你想要做到这一点会变得非常复杂,并且有很多方法可以做到这一点,但ajax风格的上传看起来确实很好,没有它就很难找到专业页面。
答案 1 :(得分:1)
您可以通过在客户端计算机上存储cookie中的所有上传项目(或cookie,如果使用不同的浏览器)来消除至少部分问题。
或者,不要使用SWFUpload,使用普通的HTML“input type = file”上传,并在添加相关照片之前强制创建记录。对于潜在的混乱问题,这可能是最干净的解决方案。
答案 2 :(得分:0)
当文件上传时,默认获取临时名称,使用它或用自己的名称覆盖,当保存记录连接图像时应使用此临时名称,当记录插入的文件名可以根据记录ID更改时,临时名称改变(重新启动)后......