it-roy-ru.com

Вы не выбрали файл для загрузки. PHP Кодовый Воспламенитель

Я пытаюсь реализовать функциональность сообщения и хочу выбрать сообщение и изображение из просмотра php. Функциональность моего сообщения работает хорошо. Но при загрузке изображения я получаю ошибку You did not select a file to upload. Это моя функция контроллера

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');
}

Это мой взгляд.

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

<!--<form id="loginForm" action="../search/post_func" method="post" enctype="multipart/form-data" >-->
<div id="your_post">
<div id="post_image">
<img   id ="post_img" src="<?php  echo $this->config->item('base_url'); ?><?php echo '/application/css/'. $img ?>"/>
</div>
<textarea name="post" rows="5" cols="30" placeholder="Share an update..." id="post_text" rows="2" value=""></textarea>

//other view items
            <?php
    echo form_close();
    ?> 

Пожалуйста, помогите мне

8
SSMA

Правка:

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

Правка:

$this->upload->do_upload()

К этому:

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

и это будет работать !! :)

28
mzalazar
enctype='multipart/form-data'

вы должны поместить предыдущий атрибут в тег формы

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

передать имя файла входного тега в предыдущую строку вашего контроллера 

<input type="file"   name ="file_name" >
2
Ahmed Mahmoud

Ваш тип формы должен быть "multipart"
Измените тег формы на: 

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

Обратите внимание, что я выполнял импорт загрузки MySQL и получил сообщение «Вы не выбрали файл для загрузки». Оказывается, мой файл импорта sql имел дополнительные столбцы, которые вызвали сбой и вернули это сообщение об ошибке.

0
Robot70

Сделай это:

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;
0
user6151303

пример кода 

    $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'];
                    }
    }
0
ShaziaNasim

Еще одна причина, по которой я нахожу эту проблему. если вы забыли инициализировать после загрузки вашей библиотеки:

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

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

Я надеюсь, что это может помочь вам.

0
Indrasinh Bihola