2014-03-13 54 views
0

我的网站允许用户上传图片。我被困在两种情况之间:我选择后应立即上传图像,还是在点击提交按钮后上传图像。按提交前上传图片

我决定立即上传图片让我的网站更有意义,但是,我遇到了另一个问题。

现在,我希望每个图像的名称都是该帖子的ID(例如:500.png)。但是,如果我在之前上传图像,用户单击提交,我如何以这种方式命名图像(因为当用户按下提交时我无法获得插入ID)?

+0

如果没有创建标识,则无法为图像分配值。您必须先保存记录才能获取ID。或者,如果希望在选择后立即保存图像,则可以在记录保存到ID后将图像重命名。 – Jack

+0

你可以使用$('input [type = file]')。change(function({$('form')。submit();});提交而不使用提交按钮 – NEO

+0

只需将图像存储在单独的表并将外键存储到映像表中,而不是映像的文件名。 –

回答

0

您每次上传图片时,都会将图片存储在一张单独的表格中,并将图片上传一列;和另一列以指示图像是否附加到帖子。您可以将postid用于此列。

自动上传图片时,您可以填充隐藏的输入字段以存储图像的自动ID,并将其转发到创建后处理程序。新创建的职位将有一个ID。将其保存在图像的postid列中。现在你的图片文件名正在使用imageid,而不是postid,但没关系。如果您确实想在帖子名称后更改图像名称,请将原始图像上传为img _ ###。png;然后将其重命名为* .png,其中###是图像ID,*是帖子ID。 img_前缀是避免名称冲突所必需的。再次,这不是必需的。图像ID很好。

最后,您可以设置一个cron作业来删除前一段时间上传但没有帖子ID的图像文件和记录。这将清除所有自动上传的图像,而无需提交表单。

你必须照顾图像上传赛车条件。如果您的图片仍在上传,并且有人点击了表单发布按钮,该怎么办?