2011-01-14 75 views
2

我想上傳圖像到我的服務器,它工作正常,我已經在圖像上加密名稱。codeigniter圖像上傳(獲取加密名稱)

但現在我想更新我的數據庫中的用戶表,以便我可以在用戶的​​個人資料上顯示圖像。

我的問題是,我無法找到如何在名爲「users」的數據庫表中插入加密的圖像名稱,用戶表中的毛氈字段是「profile_picture」。

我已經試過這

$profilBilledNavn = $this->upload->data('file_name'); 
$this->db->where('username', $this->input->post('username')); 
$this->db->update('users', $profilBilledNavn); 

,但它不工作。我究竟做錯了什麼?

+0

嗨西蒙:檢查這個帖子http://stackoverflow.com/questions/25174176/get-file-name-after-configencrypt-name-using-codeigniter – 2016-10-18 10:52:09

回答

0

這裏指的更清楚

http://codeigniter.com/user_guide/libraries/file_uploading.html

比方說,你在叫upload_data數組上傳數據。

負荷數據庫類

$這 - >負載>數據庫();

然後在模型或控制器..

插入該字段稱爲cryptedname在表

$ cryptednamme = $ upload_data [ 'FILE_NAME']; $ this-> db-> set('cryptedname', $ cryptedname);

插入到表中稱爲圖像

$這 - > DB->刀片( '圖像');

+0

好吧,我仍然可以不這樣做:S我有這個$ profilBilledNavn = $ this-> upload-> data('file_name'); \t \t $ this-> db-> where('username',$ this-> input-> post('username')); \t \t $ this-> db-> update('users',$ profilBilledNavn); – simon 2011-01-14 18:23:18

+0

@simon:嗯?!!你可以編輯你的問題,並添加你的代碼..實際解釋你在做什麼或試圖做什麼! – ifaour 2011-01-14 18:35:34

1

你必須向我們展示了一些代碼,但無論如何,你需要設置encrypt_name上傳文件時:

$config['encrypt_name'] = TRUE; 

編輯:
根據您的更新,你的代碼應該閱讀:

$profilBilledNavn['profile_picture'] = $this->upload->data('file_name'); 
$this->db->where('username', $this->input->post('username')); 
$this->db->update('users', $profilBilledNavn); 

編輯2:
請注意,$this->upload->data()將返回陣列保存上傳文件的信息,refer
所以,你需要做的是:

$file_array = $this->upload->data('file_name'); 

,然後使用:

$profilBilledNavn['profile_picture'] = $file_array['file_name']; 

現在的文檔注意:

FILE_NAME的文件的名稱上傳了 ,其中包括文件 的擴展名。
orig_name原始文件名稱 文件名。這僅在您使用加密名稱選項 時纔有用。

因此,由於您使用的是encrypt_name,您應該使用第一個選項(file_name)更新您的數據庫。