代码点火器文件上传 - 无文件类型

时间:2012-09-05 15:49:18

标签: php codeigniter file-upload

过去一小时我一直在寻找Code Igniter论坛,试图弄清楚这一点:

我正在使用Code Igniter为Web应用程序编写文件上传处理程序。到目前为止,我有以下代码来处理上传:

public function send() {        
    $config = array(
        'upload_path' => 'path/to/my/upload/directory',
        'allowed_types' => 'pdf'
    );

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

    $this->upload->do_upload('pdf_upload');

    echo "<pre>";
    print_r($this->upload->data());
    echo "</pre>";
    exit();
}

我的观点:

<?= $errors ?> <br />
<?= form_open_multipart('/Upload_test/send') ?>
    <p><label for="pdf_upload">File: (PDF ONLY)</label> <input type="file" name="pdf_upload" id="pdf_upload" /></p>
    <p><input type="submit" /></p>
</form>

当我提交选择了有效PDF文件的表单时,我从print_r()获得以下输出:

Array
(
    [file_name] => my_file.pdf
    [file_type] => 
    [file_path] => path/to/my/upload/directory/
    [full_path] => path/to/my/upload/directory/my_file.pdf
    [raw_name] => my_file
    [orig_name] => 
    [client_name] => my_file.pdf
    [file_ext] => .pdf
    [file_size] => 4190
    [is_image] => 
    [image_width] => 
    [image_height] => 
    [image_type] => 
    [image_size_str] => 
)

文件类型为空。可能导致此问题的原因是什么?我错过了什么?

1 个答案:

答案 0 :(得分:0)

我在一个相关但不重复的问题中找到了答案:Uploading in Codeigniter - The filetype you are attempting to upload is not allowed

  

如果您使用的是Codeigniter 2.1.0版,则上传中会出现错误   图书馆。有关详情,请参阅http://codeigniter.com/forums/viewthread/204725/   的信息。

     

基本上我所做的是修改文件上传中的几行代码   类(位置:./ system / library / Upload.php)

     

1)修改行号1044

     

从:

$this->file_type = @mime_content_type($file['tmp_name']);
return;
     

到此:

$this->file_type = @mime_content_type($file['tmp_name']);
if (strlen($this->file_type) > 0) return; 
     

2)修改行号1058

     

从:

@exec('file --brief --mime-type ' . escapeshellarg($file['tmp_path']), $output, $return_code);
     

到此:

@exec('file --brief --mime-type ' . escapeshellarg($file['tmp_name']), $output, $return_code); 
     

正如您可能看到的那样,第1058行尝试使用数组值   不存在。