无法上传文件。 $this->upload->do_upload('anonsphoto');
返回false
。无法找出原因。
我将上传库添加到自动加载方式:$autoload['libraries'] = array('upload');
以下是我的观点:
<?php
echo form_open_multipart('InterviewController/saveInterview');
$anons_data = array(
'name' => 'anons',
'id' => 'anons_area',
'value' => 'Введите анонс'
);
echo form_textarea($anons_data); ?>
<p>Картинка анонса</p>
<?php
echo form_upload('anonsphoto'); ?>
这是上传文件的控制器:
public function saveInterview() {
$config['upload_path'] = '/application/upload/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '10000';
$config['file_name'] = 'img_' . (string) time();
$this->upload->initialize($config);
$this->upload->do_upload('anonsphoto');
return;
}
上传文件是3 kb大小的png文件。我无法理解为什么do_upload返回false。有什么想法吗?
答案 0 :(得分:3)
文件上传课程说明您需要的所有内容。 https://www.codeigniter.com/userguide3/libraries/file_uploading.html
这是关键:
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload', $config);
// Alternately you can set preferences by calling the initialize function. Useful if you auto-load the class:
$this->upload->initialize($config);
“”。 (点)表示当前上载路径的目录。因此,您的应用程序无法正常运行,因为您的根路径未以(点)开头。
您的文件夹应具有完全权限(CHMOD)至0755。
此:
$config['upload_path'] = './uploads/';
表示:当前目录和上传目录
或:
$config['upload_path'] = $_SERVER['DOCUMENT_ROOT'].'/application/upload/';
表示:您的完整文档URI路径和可以说的目录'/application/upload/'
。
别忘了放(点)。在$_SERVER['DOCUMENT_ROOT']
和'/application/upload'
之间。
最大尺寸应为KiB值:$config['max_size'] = '10000';
希望这有助于理解它的工作原理。
答案 1 :(得分:0)
我认为你的上传路径是错误的。尝试使用
$config['upload_path'] = $_SERVER['DOCUMENT_ROOT'].'/application/upload/';
并确保该目录是可写的。