我的产品表单具有AJAX图像上传工具。因此用户可以在提交表单之前上传图像。我的问题是如何在提交产品表单之前识别出属于此产品的图像。我开发了自己的机制
我有2张桌子
Products(id,ProductName,UND)
Image(id,UND,PATH)
产品表格
<form action='save.php' method='post'>
<input type='text' name='product_name' value=''>
<input type='hidden' name='UND' value="<?php random_string('50')?>">
<input type='button' id='upload_image' value='Upload'>
<input type='submit' id='' value='Post Product'>
</form>
对于我有这个功能的唯一号码
<?php
function random_string($length) {
$key = '';
$keys = array_merge(range(0, 9), range('a', 'z'));
for ($i = 0; $i < $length; $i++) {
$key .= $keys[array_rand($keys)];
}
$key= time().$key;
return $key;
}
?>
我使用相同的UND保存图像以识别属于该产品的图像。
问题
1)这种方法有效,但我认为归档这么简单的任务很麻烦。应该有简单的方法来做到这一点。
2)如果没有提交表格,我如何删除这些图像。
答案 0 :(得分:3)
我觉得机制是正确的,您可以运行一个cron作业,检查产品是否存在唯一代码。如果不存在则删除图像。 BTW为什么要在创建产品之前上传图像
设置cron :(取决于操作系统) 你将不得不编写一个php / mysql脚本,该脚本将包含产品表中的唯一代码数组,并检查图像是否与唯一代码一起出现,如果没有找到,也会从数据库和磁盘中删除图像。
现在,您必须设置要运行此脚本的时间间隔。请参阅此链接以获取更多http://www.tecmint.com/11-cron-scheduling-task-examples-in-linux/
答案 1 :(得分:0)
非常简单直接的解决方案是尽早透明地提交表单(使用AJAX)来获取您的产品ID并将其标记为&#34; draft&#34;所以不会在任何地方显示。还保存创建日期。当用户提交表单时,您只需更新它并发布&#34;发布&#34;。
因此,您可以将图片直接上传到该product_id。
您需要设置定期运行的cron任务,并根据创建时间删除超过特定时间的未发布产品。