2014-08-29 40 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作業來檢查產品是否存在唯一代碼。如果不存在,請刪除圖像。順便說一句,你爲什麼要在產品創建之前上傳圖像

設置cron:(取決於操作系統) 你將不得不編寫一個php/mysql腳本,它會從產品表中獲得唯一代碼的數組,並檢查是否圖像與唯一代碼一起存在,如果沒有找到,也從數據庫和磁盤上刪除圖像。

現在你將不得不設置你想運行這個腳本的時間間隔。參考鏈接更多http://www.tecmint.com/11-cron-scheduling-task-examples-in-linux/

+0

由於用戶可以選擇產品檔案圖片。這只是表單的一部分。 – 2014-08-29 22:53:24

0

非常簡單直接的解決方案是提前透明地提交表單(使用AJAX)來獲取您的產品ID並將其標記爲「草稿」,以便它不會顯示在任何地方。還保存創建日期。當用戶提交表單時,只需更新它並「發佈」即可。

因此,您可以將圖像上傳到product_id。

而且您需要設置定期運行的cron任務,並根據創建時間刪除某些時間之前未發佈的產品。

+0

根據上面的表格,你能告訴我玉米工作的結構嗎? – 2014-08-29 22:54:23

+1

如果你將採用我的sollution你的cron任務將運行簡單的php文件與一個單一的SQL查詢,如''DELETE FROM products where created_time <「.time() - 24 * 60 * 60'這取決於你想要運行多久你的cron(24 * 60 * 60 = 86400秒= 24小時)如果你將時間戳保存到數據庫中,或者你可以保存'datetime',所以你需要計算日期時間'date('Ymd h:i:s',timestamp( )-24 * 60 * 60)'。如果你喜歡,你也可以運行sh腳本而不是PHP。 – Yaroslav 2014-08-29 23:24:14