在提交之前识别图像属于产品

时间:2014-08-29 22:39:52

标签: php jquery ajax forms

我的产品表单具有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)如果没有提交表格,我如何删除这些图像。

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任务,并根据创建时间删除超过特定时间的未发布产品。