如果我已有一个表格,如何在Codeigniter中上传图像?

时间:2015-12-23 00:38:17

标签: php twitter-bootstrap codeigniter upload

我的问题是,如果我已有表格,我该如何上传图片?

我想上传,只需点击一次按钮。

    <form class="form-horizontal" role="form" method="post" action="/controller/method">
    <div class="form-group">
        <label for="test" class="col-xs-8 control-label">Test:</label>
        <div class="col-xs-8">
            <input type="text" class="form-control" id="test" name="test" placeholder="" value="">
        </div>
    </div>
    <div class="form-group">
        <label for="file" class="col-xs-8 control-label">File:</label>
        <div class="col-xs-8">
            <input type="file" id="file" name="file" class="file">
        </div>
    </div>

这仅发布所选文件名。我必须验证每个输入,如果有一种方法我不想创建新的控制器功能。

1 个答案:

答案 0 :(得分:0)

使用此编码,您可以上传文件[查看]

<div class="form-group">

                                            <label for="exampleInputFile">Image Upload</label>

                                            <input id="myfile" name="myFile" type="file" />
                                            <label id="upload-error" style="color:red;display: none;">Choose File</label>

                                        </div>

对于控制器

if($this->input->post('select'))
                    { 
                       $image=array();
                       $image_title=  $this->input->post('title');
                            $folder="./img/uploadimg/";
                            if(is_uploaded_file($_FILES['myFile']['tmp_name']))
                            {
                            if(copy($_FILES['myFile']['tmp_name'],$folder.$_FILES['myFile']['name']))
                            {
                                $source= $folder.$_FILES['myFile']['name'];
                                $source_image=$_FILES['myFile']['name'];
                                $img_path=explode(".", $source_image);
                            }
                            $image['filepath']=$source;
                            $image['filename']=  $this->input->post('title');
                            }