Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
您没有选择要上载的文件。PHP代码点火器_Php_Codeigniter_File Upload_Controller - Fatal编程技术网

您没有选择要上载的文件。PHP代码点火器

您没有选择要上载的文件。PHP代码点火器,php,codeigniter,file-upload,controller,Php,Codeigniter,File Upload,Controller,我正在尝试实现post功能,并希望从php视图中选择消息和图像。我的消息功能运行良好。但在图像上载时,我收到一个错误,您没有选择要上载的文件。这是我的控制器功能 function post_func() { session_start(); echo $post_message=$_POST['post']; echo $share_with=$_POST['share_with']; echo $image=$_POST['image']; if($im

我正在尝试实现post功能,并希望从php视图中选择消息和图像。我的消息功能运行良好。但在图像上载时,我收到一个错误
,您没有选择要上载的文件
。这是我的控制器功能

function post_func()
{
    session_start();
    echo $post_message=$_POST['post'];
    echo $share_with=$_POST['share_with'];
    echo $image=$_POST['image'];
    if($image==null){
        echo "<br/>no image<br/>";  
    }
    else{
        ////////////////////////////////////////////////////////////////////////////////////////

            $config['upload_path'] = './application/css';
            $config['allowed_types'] = 'gif|jpg|png';
            $config['max_size'] = '100';
            $config['max_width']  = '1024';
            $config['max_height']  = '768';


            $this->load->library('upload', $config);


            $this->upload->initialize($config);



            if ( ! $this->upload->do_upload())
            {
                $error = array('error' => $this->upload->display_errors());

                echo "<br/>";
                echo $this->upload->display_errors();
                echo "<br/> image error<br/>";
            }
            else
            {

                echo "<br/> reached <br/>";
                session_start();
                $this->membership_model->insert_images($this->upload->data(),$email);
                $data = array('upload_data' => $this->upload->data());

                echo "<br/ problem<br/>";
            }




        ////////////////////////////////////////////////////////////////////////////////////////
    }
    $public;
    if($share_with=="public"){
        echo "1";
        $public=true;
    }else{
        echo "0";
        $public=false;
    }echo "-----------------------------<br/>";
    echo $user=$this->session->userdata('user_identification');
    $data = array 
            (
                'userid'=> $user,
                'public' => $public,
                'message' => $post_message,
                'picname' => "None"
            );
    $this->load->model('membership_model');
    $this->membership_model->add_message($data);
    echo "</br>";
    echo $user=$this->session->userdata('user_identification');
}
函数post_func()
{
会话_start();
echo$post_message=$_post['post'];
echo$share_with=$_POST['share_with'];
echo$image=$\u POST['image'];
如果($image==null){
回声“
无图像
”; } 否则{ //////////////////////////////////////////////////////////////////////////////////////// $config['upload_path']='./application/css'; $config['allowed_types']='gif | jpg | png'; $config['max_size']='100'; $config['max_width']='1024'; $config['max_height']='768'; $this->load->library('upload',$config); $this->upload->initialize($config); 如果(!$this->upload->do_upload()) { $error=array('error'=>$this->upload->display_errors()); 回声“
”; echo$this->upload->display_errors(); 回波“
图像错误
”; } 其他的 { 回声“
到达
”; 会话_start(); $this->membership\u model->insert\u image($this->upload->data(),$email); $data=array('upload_data'=>$this->upload->data()); 回声“改变:

<?php echo form_open_multipart('search/post_func');?>
$this->upload->do_upload()

您的表单类型应为“多部分”
将表单标记更改为:

 <?php echo form_open_multipart('search/post_func');?>

更改:

<?php echo form_open_multipart('search/post_func');?>
$this->upload->do_upload()
为此:

$this->upload->do_upload('my_file_input_name')

它会工作的!!:)

我发现出现此问题的另一个原因。如果加载库后忘记初始化:

$this->load->library('upload', $config);

$this->upload->initialize($config); //Make this line must be here.

我希望这可能会对您有所帮助。

因此请注意,我在执行mysql上载导入时收到了“您没有选择要上载的文件”消息。结果发现,我的导入sql文件有额外的列,这导致了失败并返回了此错误消息。

示例代码如下所示

    $config['upload_path'] = FCPATH.'upload/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '100';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';

    $this->load->library('upload');
            $this->upload->initialize($config);  

    if ( ! $this->upload-> do_upload('userfile'))
    {

                   $errors = $this->upload->display_errors();
                   $this->session->set_flashdata('error', $errors);
                       redirect('ur_link');
    }
    else
    { 
                            $data = array('upload_data' => $this->upload->data());
                            $fullpath= $data['upload_data']['full_path'];
                            $file_name = $data['upload_data']['file_name'];
                    }
    }
您应该将上一个属性放在表单标记中

$this->upload->do_upload('file_name')
将输入标记文件名传递给控制器中的前一行

<input type="file"   name ="file_name" >

执行以下操作:

if(isset($_FILES['profile_pic']['name']) && !empty($_FILES['profile_pic']['name'])){

    $config['upload_path']= './assets/img/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = 10000;
    $config['max_width'] = 10000;
    $config['max_height'] = 10000;

    $this->load->library('upload', $config);

    if ( ! $this->upload->do_upload('profile_pic'))
    {
        $error = array('error' => $this->upload->display_errors());

        print_r($error);
        exit;
    }
    else
    {
        $data = array('upload_data' => $this->upload->data());

        if(!empty($data)){

            $img1 =  $data['upload_data']['file_name'];                           

        }
    }
}

$insert_data['profile_pic'] = $img1;

首先看一下这里:您的表单必须是多部分的。@Ts8060我已经添加了
,但它仍然给出了错误。我已经在这个代码“”中定义了我输入的
图像的名称,即使它说
图像未定义
@Nil'zi已经添加了
,但它仍然给出了错误。
$this->upload->do_()
需要一个
字段名
,您没有提供该字段名,这意味着默认情况下它将使用
用户文件
。您的表单中是否有
?另一件事是,您不会使用像这样的
echo$image=$\u POST['image'];
,而是这样做:
echo$image=$\u文件['image']
。希望能有帮助。上帝保佑你,亲爱的,每次我忘记这一点。我已经访问了这个问题三次以上了……我在接受答案中添加了我的问题。你能帮我吗?我像这样更改了,但得到
你没有选择要上载的文件。
,我在接受答案中上载了我的问题,你看到了吗?@151291登录firefox/chrome控制台(在“网络”选项卡中),如果您的表单正在发送。是的,它正在发送这样的帖子并重复。
move\u upload\u file($\u FILES['file']['tmp\u name'],$config['upload\u path'].$basename);
正在工作,但
$this->upload->do\u upload('test'))
不工作。您必须在HTML中将“test”替换为file元素的名称,让我知道。确实如此!但不知道为什么?我在尝试所有答案之前使用了空参数,但仍然出现错误,如
您没有选择要上载的文件。
但是
$\u FILES['file']['name']
很好。你为什么不发布你自己的问题,这样我们就可以找到你问题的解决方案。我的问题是相同的,但错误是不同的…好的,如果我没有得到,我会发布我的问题。
移动上传的文件($上传的文件['file']['tmp\u name',$config['upload\u path'.$basename)
正在工作,但
上传
不工作。$this->upload->do\u upload('userfile')//userfile是您的文件名这段代码您可以添加一些信息吗