CodeIgniter - Uploading an Image through a form, store the location of the image in database

左心房为你撑大大i 提交于 2019-12-03 19:42:32

问题


I'm trying to upload an image to my site through a form, however it's much more efficient to (rather than bog down the database) just store the location of the image in the database.

I'm having trouble with my form and really don't know where to go:

<?=form_open('bro/submit_new');?>
 //other form data
 Image: <input type="file" name="image" size="20" /> <br>
 <input type="submit" value="Submit" />
</form>

Now the form itself works fine, the problem is that it's trying to store the image into the database field 'image' (which is type TEXT). What's the easiest way to tell it to just store the file, and give the file location to store in the 'image' field? (I tell it where to upload the file via the controller).

Thanks

Edit: controller code (for this part):

function submit_new(){
    $config['upload_path'] = './images/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '2000';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';     
    $this->load->library('upload', $config);

    $this->db->insert('post', $_POST);

    redirect('bro');
}

回答1:


CodeIgniter's file uploading class will do this for you. The entry in their user guide explains as well as I could, so I'm going to point you there.

Essentially you'd just need to modify the controller that they have there to include a bit where you put the file URL in the database, which you can accomplish easily by using $this->upload->data() and extracting [full_path] from the resulting array, and then sending it to a model which handles the database input.




回答2:


use form_open_multipart() not form_open()




回答3:


use the model pages to upload data to database



来源:https://stackoverflow.com/questions/288076/codeigniter-uploading-an-image-through-a-form-store-the-location-of-the-image

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!