我想将图像上传到我的服务器,它工作正常,我已在图像上加密了名称。
但现在我想更新数据库中的用户表,以便在用户的个人资料中显示图像。
我的问题是我无法找到如何在名为“users”的数据库表中插入加密的图像名称,而users表中的毛毡字段是“profile_picture”。
我试过这个
$profilBilledNavn = $this->upload->data('file_name');
$this->db->where('username', $this->input->post('username'));
$this->db->update('users', $profilBilledNavn);
但它不起作用。我做错了什么?
答案 0 :(得分: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
)来更新数据库。
答案 1 :(得分:0)
请参阅此处以获得更清晰的信息
http://codeigniter.com/user_guide/libraries/file_uploading.html
假设您在上传数据名为upload_data。
加载数据库类
$这 - >负载>数据库();
然后在模型或控制器中..
插入表格中名为cryptedname的字段
$ cryptednamme = $ upload_data [ 'FILE_NAME']; $这 - > DB->设置( 'cryptedname', $ cryptedname);
插入名为image
的表格$这 - > DB->插入( '图像');