php - codeigniter文件上传失败

标签 php upload codeigniter-2

无法上传文件。 $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'); ?>

这是上传文件的 Controller :

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。有什么想法吗?

最佳答案

文件上传类告诉你所有你需要的。 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);

“。” (点)表示当前上传路径目录。因此,您的应用无法正常工作,因为您位于不是以(点)开头的根路径上。

您的文件夹应该具有对 0755 的完全权限 (CHMOD)。

这个:

$config['upload_path'] = './uploads/'; 

表示:当前目录和上传目录

或:

$config['upload_path'] = $_SERVER['DOCUMENT_ROOT'].'/application/upload/';

表示:如 Can 所说,您的完整文档 URI 路径和目录 '/application/upload/'

不要忘记输入(点)。在 $_SERVER['DOCUMENT_ROOT']'/application/upload' 之间。

最大大小应以 KiB 值表示:$config['max_size'] = '10000';

希望这有助于理解它的工作原理。

关于php - codeigniter文件上传失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15441349/

相关文章:

php - fopen()上传文件权限受目录添加组权限影响

php - 代码点火器 : create multidimensional array of result

php - 使用 Codeigniter Active Record 计算行总数

php - 如何在 Codeigniter 的迁移库中创建触发器

php - zend 框架选择对象和复杂连接

php - Codeigniter 不允许用户向数据库添加重复的电子邮件

php - 将子域重定向到包含 CakePHP 应用程序的主目录中的文件夹

coldfusion - 使用 ColdFusion 上传文件,文件过大超时?

php - 从多个表mysql(PHP)中选择数据按公共(public)名称字段排序

asp.net - 在IIS7/Win7 Pro上增加最大上传文件大小