почему pdf загрузка не удалась на codeigniter 1.7.2 - PullRequest
0 голосов
/ 04 января 2011

У меня такая же проблема.другие файлы док, xls загружает нормально.но загрузка PDF дает ошибку.«Тип файла, который вы пытаетесь загрузить, запрещен». В config / mimnes.php у меня есть:

'pdf'    =>    array('application/pdf', 'application/x-download', 'application/download'),  

в контроллерах, у меня есть:

function upload_file($type, $upload_type)
{
    $this->load->library('upload');
    //upload file
    switch($upload_type){
        case "image":
            $config['upload_path'] = './uploads/';
            $config['allowed_types'] = 'gif|jpg|jpg|png|pdf';
            $config['max_size'] = '3000';
            $config['max_width'] = '3224';
            $config['max_height'] = '1268';
        break;
        case "doc":
            $config['upload_path'] = './uploads/pages/doc/';
            $config['allowed_types'] = 'pdf|doc|docx|xls|ppt';
            $config['max_size'] = '3000';
            $config['encrypt_name'] = TRUE;
        break;
    }
    foreach($_FILES as $key => $value)
    {
        if( ! empty($value['name']))
        {
                $this->upload->initialize($config);

                if ( ! $this->upload->do_upload($key))
                {
                $errors = array('error' => $this->upload->display_errors());
                $this->session->set_flashdata('flashError', $errors);

                }
                else
                {
                     $this->page_model->process_file($type, $upload_type);
                }
         }
    }
}  

любая помощь будет заметна.

Ответы [ 3 ]

1 голос
/ 10 февраля 2013

У меня тоже была такая же проблема, но я понял, что некоторые файлы PDF отправляются в FireFox как application / octet-stream .Я не знаю почему.Но попробуйте открыть mimetype.php и добавить его в массив mimetype файла pdf следующим образом:

'pdf' => array ('application / pdf', 'application / x-download', 'application / binary ',' application / octet-stream '),

0 голосов
/ 04 января 2011

Вы используете FireFox?У меня была такая же проблема, возникшая у ФФ.Mimetype - это application / binary, так что вы можете изменить его в mimes.php

'pdf'   =>  array('application/pdf', 'application/x-download', 'application/binary'),

, который должен решить проблему.

0 голосов
/ 04 января 2011

Удалить эту строку:

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

Затем добавьте эту строку после конца блока переключателей и перед блоком foreach

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

Вы загружаете библиотеку загрузки и затем устанавливаете значения конфигурации, что не имеет никакого эффекта.

Ваша измененная функция должна выглядеть следующим образом:

function upload_file($type, $upload_type)
{
    //upload file
    switch($upload_type){
        case "image":
            $config['upload_path'] = './uploads/';
            $config['allowed_types'] = 'gif|jpg|jpg|png|pdf';
            $config['max_size'] = '3000';
            $config['max_width'] = '3224';
            $config['max_height'] = '1268';
        break;
        case "doc":
            $config['upload_path'] = './uploads/pages/doc/';
            $config['allowed_types'] = 'pdf|doc|docx|xls|ppt';
            $config['max_size'] = '3000';
            $config['encrypt_name'] = TRUE;
        break;
    }

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

    foreach($_FILES as $key => $value)
    {
        if( ! empty($value['name']))
        {
                $this->upload->initialize($config);

                if ( ! $this->upload->do_upload($key))
                {
                $errors = array('error' => $this->upload->display_errors());
                $this->session->set_flashdata('flashError', $errors);

                }
                else
                {
                     $this->page_model->process_file($type, $upload_type);
                }
         }
    }
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...