飞翔 发表于 2010-9-7 19:53:30

上传图片

修改图片功能。
1.htm 页面
<p style="margin-bottom:5px;">
信息图片:<img src="<?php echo $baseurl;?>public/data/goods_images/<?php echo $goods['shortpic'];?>"width="200px;" height="100px;"/></p>
<input type="hidden" name="shortpic2" id="shortpic2" value="<?php echo $goods['shortpic'];?>"size="50"/>
<input type="hidden" name="pic2" id="pic2" value="<?php echo $goods['pic'];?>"size="50"/>
<p style="margin-bottom:5px;">
信息图片:<input type="file" name="pic" size="40" />&nbsp;&nbsp;<span style="color:#FF0000">(仅限JPG和PNG格式,大小不超过1024x768像素,体积不超过300K.)</span></p>

ACtion 页面
function do_edit() {
         $config['upload_path'] = './public/data/goods_images/full/';
      $config['allowed_types'] = 'jpg|png';
      $config['max_size'] = '300';
      $config['max_width']= '1024';
      $config['max_height']= '768';
      $config['encrypt_name']='TRUE';
      $this->load->library('upload', $config);
if(array_key_exists ( 'pic' , $_POST) && isset($_POST['pic']) && !empty($_POST['pic'])){       //判断上传图片是否为空
       if (!$this->upload->do_upload('pic')) {
         $this->admin_model->info(4,'抱歉,图片上传失败。可能您选择的图片大小超出了限制。请返回重新上传。','back');
               echo $this->upload->display_errors();
      }else {
            $data = array('upload_data' => $this->upload->data());//上传文件信息
            $imgname=$data['upload_data']['file_name'];            //上传后的文件名(包括扩展名);
            $this->load->library('image_lib');
            $config['image_library'] = 'GD2';
            $config['source_image'] = "public/data/goods_images/full/{$imgname}";
            $config['new_image'] = "public/data/goods_images/thumb/{$imgname}";
            $config['width'] = 100;
            $config['height'] = 100;
            $config['quality']='90%';
            $this->image_lib->initialize($config);
            $this->image_lib->resize(); //生成缩略图
            $goods_data['pic']='full/'.$imgname; //新闻完整图片路径
            $goods_data['shortpic']='thumb/'.$imgname;//新闻缩略图路径
                  } }else {
         $goods_data['pic']=$_POST['pic2']; //新闻完整图片路径
            $goods_data['shortpic']=$_POST['shortpic2'];//新闻缩略图路径
   }
            $goods_data['name']=$_POST['name'];//名称
            $goods_data['pen_name']=$_POST['pen_name'];//别名称
            $goods_data['type_id']=$_POST['type_id'];//频道类型
            $goods_data['outtime']=$_POST['outtime'];//发表时间
            $goods_data['out_name']=$_POST['out_name'];//作者
            $goods_data['level']=$_POST['level'];//排序
            $goods_data['root_in']=$_POST['root_in'];//来源
            $goods_data['tag']=$_POST['tag'];//tag
            $goods_data['short_desc']=$_POST['short_desc'];//概要简介
            $goods_data['contents']=$_POST['content'];//详细简介
            $goods_data['out_new']=$_POST['out_new'];//外连接
            $goods_data['created_at']=date('Ymd His');//添加时间
            $goods_data['update_at']=date('Ymd His');//修改时间
                        if($this->admin_model->update_goods($goods_data,$id)==1) {
            $this->admin_model->info(2,'您已经成功地修改了商品资料。',site_url().'admin/goods/');
         } else {
            $this->admin_model->info(4,'抱歉,无法修改商品资料。','back');
         }
   
    }


出现错误!You did not select a file to upload.
有人知道错在什么地方呢。知道告诉我一声!
谢谢啊!

visvoy 发表于 2010-9-7 22:32:15

上传文件的表单要设置multipart属性,
楼主可以用form_open_multipart()写表单(先加载form_helper)
页: [1]
查看完整版本: 上传图片