2016-03-21 12 views
0

この私のコード・コントローラ "contract.php"Codeigniterからのアップロード後のファイルと画像の削除方法は?

function delete($con_id){ 
     //$year=$this->session->userdata('year'); 
     $path = ('/assets/upload/employees/contracts/'); 
     $get_file = $path.$con_id.'.jpg'; 
     $this->db->where('con_id',$con_id); 
     $this->db->delete('sch_emp_contract'); 
     if(file_exists($get_file)){ 
      unlink(base_url("/assets/upload/employees/contracts/'.$con_id.")); 
     } 

     $m=''; 
     $p=''; 
     if(isset($_GET['m'])){ 
      $m=$_GET['m']; 
     } 
     if(isset($_GET['p'])){ 
      $p=$_GET['p']; 
     } 

     redirect("employee/contract?m=$m&p=$p"); 
    } 

このコードビューcontract_list.php - ボタン削除

<td width="1%" class="remove_tag">'; 
    if($this->green->gAction("D")){ 
    $tr .='<a title="Delete Contract" id="clk_del" class="clk_del"> 
<img rel="'.$contract['con_id'].'" src="'.site_url('../assets/images/icons/delete.png').'" onclick="delete_contrac (event);" style="width:20px;height:20px;"></a>';}$tr .='</td> 

機能

function delete_contract(event){ 
    var r = confirm("Are you sure to delete this record !"); 
    if(r == true){ 
    var contr_id= $(event.target).attr('rel'); 
    location.href="<?PHP echo site_url('employee/contract/delete');?>/"+contr_id+"?<?php echo "m=$m&p=$p" ?>"; 
    } 
} 

の成功は、データベースが、フォルダのファイルから削除します。画像のアップロードは削除できません。

答えて

1

base_url()機能を使用すると、削除したいファイルのディレクトリパスを使用する必要があり、ここであなたのurlプロジェクトを返しますが。

$path = BASEPATH.'/assets/upload/employees/contracts/'; 
$get_file = $path.$con_id.'.jpg'; 
if(file_exists($get_file)){ 
    unlink($get_file); 
} 

代わりの unlink(base_url("/assets/upload/employees/contracts/'.$con_id."));

1

file_existsがtrueまたはfalseを返すかどうかを確認してください。次に、このようなものを試してみてください。

$path = BASEPATH.'/assets/upload/employees/contracts/';//get absolute path 
     $get_file = $path.$con_id.'.jpg'; 
     $this->db->where('con_id',$con_id); 
     $this->db->delete('sch_emp_contract'); 
     if(file_exists($get_file)){ 
      unlink($get_file); 
     } 
関連する問題