【问题标题】:uploading zip files in codeigniter won't work在 codeigniter 中上传 zip 文件不起作用
【发布时间】:2010-04-27 05:48:11
【问题描述】:

我创建了一个需要一些参数并且应该上传文件的助手,该函数适用于图像但不适用于 zip 文件。我在谷歌上搜索,甚至添加了一个 MY_upload.php -> http://codeigniter.com/bug_tracker/bug/6780/

但是我仍然有问题,所以我使用 print_r 显示上传文件的数组,图像很好但是 zip 数组是空的:

Array
(
    [file_name] => 
    [file_type] => 
    [file_path] => 
    [full_path] => 
    [raw_name] => 
    [orig_name] => 
    [file_ext] => 
    [file_size] => 
    [is_image] => 
    [image_width] => 
    [image_height] => 
    [image_type] => 
    [image_size_str] => 
)

Array
(
    [file_name] => 2385b959279b5e3cd451fee54273512c.png
    [file_type] => image/png
    [file_path] => I:/wamp/www/e-commerce/sources/images/
    [full_path] => I:/wamp/www/e-commerce/sources/images/2385b959279b5e3cd451fee54273512c.png
    [raw_name] => 2385b959279b5e3cd451fee54273512c
    [orig_name] => 1269770869_Art_Artdesigner.lv_.png
    [file_ext] => .png
    [file_size] => 15.43
    [is_image] => 1
    [image_width] => 113
    [image_height] => 128
    [image_type] => png
    [image_size_str] => width="113" height="128"
)

这是函数助手

function multiple_upload($name = 'userfile', $upload_dir = 'sources/images/', $allowed_types = 'gif|jpg|jpeg|jpe|png', $size)
    {
        $CI =& get_instance();

        $config['upload_path']   = realpath($upload_dir);
        $config['allowed_types'] = $allowed_types;
        $config['max_size']      = $size;
        $config['overwrite']     = FALSE;
        $config['encrypt_name']  = TRUE;

            $ffiles = $CI->upload->data();

            echo "<pre>";
            print_r($ffiles);
            echo "</pre>";
            $CI->upload->initialize($config);
            $errors = FALSE;

            if(!$CI->upload->do_upload($name))://I believe this is causing the problem but I'm new to codeigniter so no idea where to look for errors
                $errors = TRUE;
            else:
                // Build a file array from all uploaded files
                $files = $CI->upload->data();
            endif;


            // There was errors, we have to delete the uploaded files
            if($errors):                   
                @unlink($files['full_path']);
                return false;
            else:
                return $files;
            endif;

    }//end of multiple_upload()

这是我控制器中的代码

if(!$s_thumb = multiple_upload('small_thumb', 'sources/images/', 'gif|jpg|jpeg|jpe|png', 1024)): //http://www.matisse.net/bitcalc/
    $data['feedback'] = '<div class="error">Could not upload the small thumbnail!</div>';
    $error = TRUE;
endif;
if(!$main_file = multiple_upload('main_file', 'sources/items/', 'zip', 307200)):
    $data['feedback'] = '<div class="error">Could not upload the main file!</div>';
    $error = TRUE;
endif;

【问题讨论】:

  • 找到解决方案 -> codeigniter.com/forums/viewthread/149027 将 force-download 添加到允许的 mime 类型
  • 您“应该”将您的答案添加为答案并批准它,这样它就不会出现在此处的“未回答”中。 :)
  • 是的,但你总是必须等待 24 小时才能做到这一点:D 我在提出问题后一小时后发布了答案 :)

标签: codeigniter zip


【解决方案1】:

找到解决方案 -> codeigniter.com/forums/viewthread/149027 将强制下载添加到允许的 mime 类型

【讨论】:

    【解决方案2】:

    我在 $_FILES['your_file_name']['type'] 中得到了 'application/octet-stream',所以我必须在 'zip' 的 mime 类型中添加 'application/octet-stream'(在 /config /mimes.php) 。

    $_FILES['your_file_name']['type'] 的值似乎因浏览器/平台而异。

    【讨论】:

      猜你喜欢
      • 2013-12-16
      • 1970-01-01
      • 2015-09-26
      • 1970-01-01
      • 2013-03-17
      • 2013-12-09
      • 2018-02-19
      • 1970-01-01
      • 2010-11-27
      相关资源
      最近更新 更多