我有一個表單,用戶選擇一個文件,在文本框中輸入一個文件名,然後點擊保存,它應該將文件保存在服務器上。上傳文件時遇到問題
我希望它的工作方式是,它:
1)在數據庫中插入一行。 2)保存文件的名稱是db的row_id。 (ex.38.pdf) 3)用文件擴展名更新數據庫。
我無法弄清楚如何安排我的代碼,以便發生。我可以得到插入的行,但爲了設置file_name(名稱文件保存)我需要有擴展名。只有獲得擴展名的方法是加載一個庫。爲了加載庫我需要$ config數組(其中之一是file_name)設置。
非常困惑。可能很明顯,但也許我一直在盯着它。感謝您的幫助和好運。順便說一句,使用codeigniter框架。
(。截至目前,該代碼被打破,我一直用它搞亂了大約一個小時,一個半這正是我最近嘗試過),該形式是針對
上傳功能 - --------
public function do_upload() {
$fileName = $this->input->post('name');
$scopeId = $this->session->userdata('scopeId');
$user = 'user';
$date = date('n/d/Y', time());
$query = $this->db->query('
INSERT
INTO scope_uploads
VALUES(
NULL,
'. $scopeId .',
"'. $fileName .'",
"'. $user .'",
"'. $date .'",
"N/A"
)
');
$lastId = $this->db->insert_id();
$this->load->library('upload');
$fileData = $this->upload->data();
$fileExt = $fileData['file_ext'];
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|pdf';
$config['file_name'] = ''. $lastId .'.'. $fileExt .'';
$config['max_size'] = '1000';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload', $config);
$query2 = $this->db->query('
UPDATE scope_uploads
SET extension = "'. $fileExt .'"
WHERE id = '. $lastId .'
');
$error = '';
if (!$this->upload->do_upload('userfile')) {
$error = array('error' => $this->upload->display_errors());
echo 'error';
} else {
$data = array('upload_data' => $this->upload->data());
}
if ($error == '') {
redirect(site_url('headquarters/scopeSummary'));
} else if ($error !== '') {
$deleteLastRow = $this->db->query('
DELETE
FROM scope_uploads
WHERE id = '. $query->insert_id() .'
');
}
print_r($error);
}
你使用什麼框架???? – Baba 2012-04-19 22:18:59
codeigniter。我會把它放在那裏 – 2012-04-19 22:24:51