我正在開發一個php用戶可以上傳csv文件的網站。點擊「上傳」按鈕後,文件被重命名並以'upload'.time()格式保存。上傳文件後,我需要顯示上傳文件的內容。 到目前爲止,我已經能夠正確上傳文件,並且已經用靜態文件名進行了測試,並且能夠完美地讀取csv文件。但是當我想要上傳剛剛上傳的文件名時,我沒有得到任何地方。搜索整個網站,但沒有得到任何解決方案,爲我工作。 我正在使用codeigniter 2.1.0。如何在codeigniter中檢索最近上傳的文件名
Controller文件:
<?php
class Csv_ci extends CI_Controller {
function is_logged() {
$is_logged_in = $this->session->userdata('is_logged_in');
if (!isset($is_logged_in) || $is_logged_in != true)
return false;
else
return true;
}
function index() {
if ($this->is_logged() == TRUE) {
$this->load->model('Csv_model');
if ($this->input->post('upload')) {
$name = $this->Csv_model->do_upload();
//print_r($name);
if (isset($name)) {
$filePath = "localhost/map_ci/csv/" . $name;
//$filePath = './csv/bank_data.csv';
$row = 1;
if (($handle = fopen($filePath, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 0, ",")) !== FALSE) {
$num = count($data);
$file_data[$row]['district_name'] = $data[1];
$file_data[$row]['bank_name'] = $data[2];
$file_data[$row]['area_name'] = $data[3];
$file_data[$row]['address'] = $data[4];
$row++;
}
fclose($handle);
}
$this->load->view('csvshow', array('file_data' => $file_data));
}
}
}
else $this->load->view('invalid_member');
}
}
型號文件:
<?php
class Csv_model extends CI_Model {
var $gallery_path;
var $gallery_path_url;
function Csv_model() {
parent::__construct();
$this->gallery_path = realpath(APPPATH . '../csv');
$this->gallery_path_url = base_url() . 'csv/';
}
function do_upload() {
$config = array(
'upload_path' => $this->gallery_path,
'allowed_types' => 'text/csv|csv|text/x-comma-separated-values|text/comma-separated-values|application/x-csv|text/x-csv|text/csv|application/csv|',
'max_size' => '5000',
'file_name' => 'upload' . time()
);
$this->load->library('upload', $config);
if (!$this->upload->do_upload())
echo $this->upload->display_errors();
else {
$file_info = $this->upload->data();
$csvfilepath = "csv/" . $file_info['file_name'];
$this->addfromcsv($csvfilepath);
$filename = $file_info['file_name'];
// print_r($filename);
return $filename;
}
}
}
找回我做file_info['file_name']
文件名。 請幫我找一個解決方案。
更新: 從我的代碼中刪除$csvfilepath = "csv/" . $file_info['file_name']; $this->addfromcsv($csvfilepath);
這兩行後,我的當前問題已解決。現在它返回上傳的文件name.yet來檢查是否完全正常工作。
更新2:代碼運行良好 感謝所有的幫助。
你確定$名稱中包含什麼?如果我沒有弄錯,你需要使用文件系統中的文件地址而不是localhost/map_ci/csv /它應該是類似於d:/folder/filename.jpg – 2012-07-07 07:09:50
我嘗試打印任何$文件名但沒有任何東西被傾倒,所以$ name沒有返回任何東西。首先我需要名稱,然後我可以正確地更正文件路徑。任何想法如何解決它? – sbr1308 2012-07-07 09:05:51