2014-08-29 2 views
1

Моя форма продукта имеет средство загрузки изображений 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) Как я могу удалить эти изображения, если форма не отправлена.

ответ

3

Я считаю, что механизм правильный, вы можете запустить задание cron, которое проверяет, существует ли продукт с уникальными кодами. если нет, удалите изображения. BTW, почему вы хотите загрузить изображение до того, как продукт будет создан?

Настройка cron: (зависит от ОС) вам нужно будет написать скрипт php/mysql, который будет иметь массив уникальных кодов из таблицы продуктов и проверить, если изображения присутствуют с уникальным кодом, если не найдены, удалите изображение из базы данных и диска.

Теперь вам нужно будет установить, с какого промежутка времени вы хотите запустить этот скрипт. ссылка на дополнительную информацию http://www.tecmint.com/11-cron-scheduling-task-examples-in-linux/

+0

Благодаря пользователю можно выбрать изображение профиля продукта. Это лишь часть формы. –

0

Очень простое и прямое решение состоит в том, чтобы прозрачно отправить форму на раннем этапе (с использованием AJAX), чтобы получить идентификатор продукта и отметить его как «черновик», чтобы его не показывали нигде. Также сохраните дату создания. И когда пользователь отправляет форму, вы просто обновляете ее и публикуете.

Таким образом, вы можете загрузить изображения прямо на этот товар.

И вам нужно настроить задачу cron, которая будет периодически выполняться и удалять неопубликованные продукты старше определенного времени в соответствии с временем создания.

+0

Можете ли вы показать мне структуру кукурузной работы, согласно приведенным выше таблицам. –

+1

, если вы примете мое решение, задача cron будет запускать простой файл php с помощью одного SQL-запроса, например '' DELETE FROM products, где created_time <".time() - 24 * 60 * 60' зависит от того, как часто вы хотите запускать ваш cron (24 * 60 * 60 = 86400 с = 24 часа), если вы сохраните временную метку в БД или можете сохранить 'datetime', поэтому вам нужно вычислить дату и время 'date (' Ymd h: i: s ', timestamp () -24 * 60 * 60) '. Также вы можете запустить sh-скрипт вместо PHP с таким запросом DB, если хотите. – Yaroslav

Смежные вопросы