使用者發帖過程中上傳臨時圖片該如何處理

來源:互聯網
上載者:User
關鍵字 php
比如使用者發一個文章要先上傳圖片(檔案是儲存在七牛這類第三方平台,使用者上傳成功後會向資料庫裡寫一條記錄的),當使用者把圖片上傳完成後,使用者突然不想發帖了,直接關掉了瀏覽器。結果導致使用者剛剛上傳的圖片成為垃圾。
請問,我該怎麼設定資料庫 邏輯,當使用者上傳的檔案沒被使用時,後台直接清除掉檔案

回複內容:

比如使用者發一個文章要先上傳圖片(檔案是儲存在七牛這類第三方平台,使用者上傳成功後會向資料庫裡寫一條記錄的),當使用者把圖片上傳完成後,使用者突然不想發帖了,直接關掉了瀏覽器。結果導致使用者剛剛上傳的圖片成為垃圾。
請問,我該怎麼設定資料庫 邏輯,當使用者上傳的檔案沒被使用時,後台直接清除掉檔案

我看不下去了,

說方法吧,不管最後發不發帖,都將上傳對應的圖片id存到資料庫,只是該圖片的對應文章id為空白或者0,查詢距目前時間一小時((時間自己決定)),若沒有對應的就認為他垃圾圖片,調用七牛介面刪除,刪除資料庫記錄

若發帖了就標記對應的文章id

方法很多啊,個人認為最簡單的做發是,在發貼成功前,圖片先存臨時文夾,或做臨時檔案標識,發貼成功後才把圖片移動到相應檔案夾或去除臨時檔案標識,這樣,定時去刪除臨時檔案就好了,

沒有用資料庫儲存過檔案,說下目錄儲存檔案,比如form表單上傳檔案上傳後檔案會儲存在系統臨時目錄,之後一般會移動到Web下的檔案目錄,所以你可以再分一個目錄當作永久目錄,對於儲存的將檔案移動到永久目錄,臨時目錄定時清理就OK。對於資料庫存檔案,form上傳後仍然會保持在系統臨時目錄,你可以將檔案移動到一個臨時儲存表或者臨時目錄,保持成功再移動到永久儲存表/目錄,再定時清理暫存資料表/目錄。這樣你其實有3個地方儲存:系統臨時目錄,臨時目錄/暫存資料表,永久目錄/永久表,再省事的方法就是只用系統臨時目錄+永久目錄/永久表,上次後檔案在系統臨時目錄,只記錄個路徑,保持後移動到永久目錄/永久表,不儲存的定時清理。

其實php上傳的檔案一開始是儲存到了系統臨時目錄裡的。你不去動它就好了。

或者你需要:
http://php.net/manual/zh/function.tempna...
這個函數會在臨系統時目錄產生一個能使用的臨時檔案。

七牛官方多媒體靜態資源的處理還是建議使用js sdk的方式上傳,可以減少伺服器端的處理,只需要記住檔案上傳後的幾個基本資料即可,非常省事,效能當然也是目前最佳選擇。安全性不用擔心,請參考文檔,並做好js跨域控制。關注「phpgod」PHP技術大全,成就大神就不遠。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.