Не може да се качи файл в кода за запалване.

Опитвам се да кача изображение със запалващ код, но то не показва никакво съобщение за успех или грешка. Моля помогнете.

Това е формуляр за качване на файл
view- Upload_form.php

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <form action="" method="">

            <?php echo $error; ?>

            <?php echo form_open_multipart('upload/do_upload');?>
            <input type="file" name="userfile" size="20" />
            <br><br>

            <input type="submit" value="upload"/>

        </form>

    </body>
</html>

Това е файл за успешен преглед
изглед - upload_success.php

<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8">
        <title>Upload form</title>
    </head>
    <body>
        <h1> YOUR FILE WAS SUCCESSFULLY UPLOADED </h1>
        <ul>
  <?php foreach ($upload_data  as $item => $value); ?>          

            <li><?php echo $item; ?> : <?php echo $value; ?></li>
            <?phpendforeach ;?>

        </ul>

   <?php echo anchor('upload','upload Another file'); ?>     
    </body>
</html>

Това е контролен файл.
контролер - upload.php

<?php

class Upload extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->helper (array('form','url'));
    }

    public function index(){
        $this->load->view('Upload_form',array('error'=>' '));

    }

    public function do_upload(){

       $config = array(  
              'upload_path' => './uploads/',
           'allowed_types' => 'gif|jpg|png',
           'max_size' => 100,
           'max_width' => 1024, //Mainly goes with images only
          'max_heigth' => 768
        );


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

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

        $error = array('error' => $this->upload->display_errors());
        $this->load->view('upload_form',$error);
    }
    else{
        $data = array('upload_data' => $this->upload->data());
        $this->load->view('upload_success',$data);

    }


    }

}

Създадох папка за качвания в главната директория на кодовия запалител.


person Jaspreet Kaur    schedule 19.09.2016    source източник
comment
Трябва да използвате form_open_multipart codeigniter.com/user_guide/helpers/ Най-добре е да използвате помощник за формуляри   -  person Mr. ED    schedule 19.09.2016
comment
моля, премахнете етикета ‹form› във вашия код и използвайте echo form_close() вместо ‹/form›   -  person Aswathy    schedule 19.09.2016


Отговори (2)


Моля, направете някои промени в кода си както в контролера, така и в страницата за преглед. И също така се уверете, че вашата папка качвания е поставена извън приложението< /strong> folder.below кодът се използва във вашия изглед Upload_form

<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <!--<form action="" method="post">-->

        <?php echo $error; ?>

        <?php echo form_open_multipart('upload/do_upload');?>
        <input type="file" name="userfile" size="20" />
        <br><br>

        <input type="submit" value="upload"/>

   <?php 
   form_close();
   ?>

</body>

и опитайте да следвате кода във вашия контролер качване

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Upload extends CI_Controller {
       function __construct()
        {
            parent::__construct();
            $this->load->helper(array('form', 'url'));

        }
        public function index(){
        $this->load->view('upload_form',array('error'=>' '));

    }

    public function do_upload(){

       $config = array(  
              'upload_path' => './uploads/',
           'allowed_types' => 'gif|jpg|png',
           'max_size' => 100,
           'max_width' => 1024, //Mainly goes with images only
          'max_heigth' => 768
        );


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

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

        $error = array('error' => $this->upload->display_errors());
        $this->load->view('upload_form',$error);
    }
    else{
        $data = array('upload_data' => $this->upload->data());
        $this->load->view('upload_success',$data);

    }


    }

}
person Aswathy    schedule 19.09.2016
comment
Важно ли е да се дефинира маршрут в route.php като $route['upload_path'] = 'Качване'; . Каква е ползата от това. - person Jaspreet Kaur; 19.09.2016

вашият upload_path може да е неправилен, така че ето кода, който използвам:

1.добавете това в горната част на вашия контролер, за да декларирате upload_path:

function __construct()
{   
  parent::__construct();
  $this->uploadPath = realpath(APPPATH . '../uploads');
}

2.променете $config upload_path от

'./качвания/'

to

$this->uploadPath


за повече подробности, моля, вижте моя uploadProfile Controller:

function upload_profilePic($userID)
    {
        //create a unique ID
        $filename = $userID. '-' .uniqid();

        //config upload
            $config=array(
                'allowed_types' =>  'jpg|jpeg|png|PNG',
                'upload_path'   =>  $this->imagePath,
                'max_size'  =>  90000,
                'file_name' =>  $filename
            );
        //upload
            $this->load->library('upload',$config);
            $this->upload->do_upload('profilePic');

        //get file data
            $data = $this->upload->data();
            $fileExtension = $data['file_ext'];

        if($fileExtension=="")
            $filename = '';
        else
            $filename=$data['file_name'];

        //
        $data = array(
            'profilePic' => $filename,
        );

        $this->db->where('userID',$userID)
        ->update('tblusers',$data);
    }
person Jomer Cabrera    schedule 19.09.2016
comment
стъпка 1 трябва да бъде поставена в класа на контролера. - person Jomer Cabrera; 19.09.2016
comment
Все още не работи. Дори не показва никакви грешки. Поне IF Block трябва да работи. Добавих също $route['upload'] = 'Качване'; във файла с маршрути. - person Jaspreet Kaur; 19.09.2016