过去一小时我一直在寻找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] =>
)
文件类型为空。可能导致此问题的原因是什么?我错过了什么?
答案 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行尝试使用数组值 不存在。