我遇到問題。我爲我的記錄有一個圖像選項,但是當我更新我的記錄或刪除記錄時,它只會影響數據庫表,並且圖像文件仍位於文件夾位置。我已經閱讀了php的unlink函數,但不知道如何在我的情況下使用它。 這裏是我的代碼http://pastebin.com/KQZyAuA0的更新和刪除操作,如果有人知道答案,然後請與我分享。如何在更新或刪除記錄時從數據庫和文件夾位置永久刪除圖像
1
A
回答
2
您可以將$ model-> save()中的代碼更改爲此,因此在重定向之前檢查目錄中是否存在舊圖像,將其刪除。
$oldThumb = Yii::getPathOfAlias('media') . '/album/optimized/' . $model_old_data->photo;
$oldOptimized = Yii::getPathOfAlias('media') . '/album/optimized/' . $model_old_data->photo;
if ($model->save()) {
if (file_exists($oldThumb)) {
unlink($oldThumb);
}
if (file_exists($oldOptimized)) {
unlink($oldOptimized);
}
$this->redirect(array('view', 'id' => $model->id));
}
行動刪除必須改變,
public function actionDelete($id)
{
if (Yii::app()->request->isPostRequest) {
// we only allow deletion via POST request
$model_old_data = $this->loadModel($id);
$oldThumb = Yii::getPathOfAlias('media') . '/album/optimized/' . $model_old_data->photo;
$oldOptimized = Yii::getPathOfAlias('media') . '/album/optimized/' . $model_old_data->photo;
$model = $this->loadModel($id);
if ($model->delete()) {
if (file_exists($oldThumb)) {
unlink($oldThumb);
}
if (file_exists($oldOptimized)) {
unlink($oldOptimized);
}
}
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
if (!isset($_GET['ajax'])) {
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
}
} else {
throw new CHttpException(400, 'Invalid request. Please do not repeat this request again.');
}
}
相關問題
- 1. 如何從VB永久刪除數據庫的記錄
- 2. 如何從Laravel的文件夾和數據庫中刪除文件或圖像?
- 3. 從數據庫中刪除包含該圖像的記錄後從文件夾中刪除圖像
- 4. 我需要幫助從數據庫中刪除記錄時從文件夾中刪除圖像
- 5. 如何從URL永久刪除目錄
- 6. 如何從數據庫和圖像文件夾中刪除圖像笨
- 7. 刪除SQL - 永久刪除
- 8. 如何永久刪除表格數據
- 9. 記錄從數據庫中刪除如何更新UI
- 10. 永久刪除目錄
- 11. 更新和刪除記錄
- 12. 從Access數據庫中刪除記錄,刪除時出錯
- 13. 從數據庫中刪除文件夾
- 14. 刪除文件夾和數據庫 - PHP
- 15. 刪除圖像數據庫刪除symfony2
- 16. GridControl刪除多個行和更新記錄在數據庫
- 17. 在codeigniter中刪除後從文件夾中刪除圖像
- 18. 永久刪除Google文檔
- 19. 如何恢復在Ubuntu中永久刪除的文件夾數據
- 20. 數據庫:刪除或不刪除記錄
- 21. 永久刪除NSURLCredential?
- 22. 永久刪除symfony插件
- 23. 如何判斷一個文件夾已被永久刪除
- 24. 上傳文件時從數據庫中刪除的記錄
- 25. 如何從MYSQL永久刪除條目?
- 26. 如何從sys.path永久刪除值?
- 27. 如何在鏈接表中永久刪除記錄?
- 28. Vaadin從數據庫中刪除記錄
- 29. 從數據庫中刪除記錄
- 30. 從數據庫中刪除記錄
你需要在這裏發佈相關的代碼。 – jeroen
您需要粘貼代碼 – dev1234