0

以下は、codeigniter のアップロード機能です。ファイルをアップロードできます。また、ファイル名が url パラメーターと一致するかどうかも確認します。名前が URL と一致しない場合、ファイルを削除するにはどうすればよいですか。リンク解除機能を試しましたが、うまくいきません

function do_upload() {

    $this->makeDir();

    $labref = $this->uri->segment(3);
    $filename = 'xyz/'. date('Y').'/'.date('M').'/'. $labref .'/' . $labref . '.xlsx';
    if (file_exists($filename)) {
        $data['labref'] = $this->uri->segment(3);
        $data['settings_view'] = 'analyst_file_present_v';
        $this->base_params($data);
    } else {

        $config['upload_path'] = 'xyz/'. date('Y').'/'.date('M').'/'. $labref  ;
        $config['allowed_types'] = 'xls|xlsx';
        $this->load->library('upload', $config);
        $data=  $this->upload->data();
        if ($data['file_name']=="$labref.'.xlsx'") {                
          $this->SaveFileDetails();
        $this->success();
        }else{            
         $filename = 'xyz/'.date('Y').'/'.date('M').'/'. $labref.'/'.$labref.'xlsx'  ;
           unlink($filename);
           echo 'You have uploaded a wrong file';
        }

        if (!$this->upload->do_upload('worksheet')) {
            $data['labref'] = $this->uri->segment(3);
            $data['error'] = $this->upload->display_errors();

            $data['settings_view'] = 'upload_analyst_v';
            $this->base_params($data);
        }
    }
}
4

2 に答える 2

0

間違ったファイルを削除しようとしているようです。

交換する必要があります:

$filename = 'xyz/'.date('Y').'/'.date('M').'/'. $labref.'/'.$labref.'xlsx'  ;

と:

$filename = 'xyz/'.date('Y').'/'.date('M').'/'. $labref.'/' . $data['file_name'];

アップロードしたファイルを削除します。

編集:エラーとデータにアクセスする前に実際にアップロードを行う必要があるため、ステートメント$this->upload->do_upload()の前にブロックを移動する必要があります。if

于 2012-11-26T17:45:35.747 に答える