【问题标题】:What's wrong with this php zip/image uploader?这个 php zip/图像上传器有什么问题?
【发布时间】:2012-03-21 15:43:43
【问题描述】:

我一直在制作图片上传器,但遇到了一些问题。

代码非常简单:它从一个表单和几个信息文本中获取一个文件(zip 文件),然后如果它以前不存在,则生成一个 url,然后在那里提取文件。

第一个是,表单变量($_post["serie"]$_POST["capitulo"] 如果文件很大并且需要一些时间上传,则似乎过期。

第二个是上传不是jpg的东西往往会失败>

提前感谢您的努力。

<?php 
require_once('pclzip.lib.php');

function preextract($p_event, &$p_header) {
    $info = pathinfo($p_header['filename']);
    if ($info['extension'] == 'gif' || $info['extension'] == 'jpg' || $info['extension'] == 'png' || $info['extension'] == 'jpeg') {
        return 1;
    } else {
        return 0;
    }
}

if(is_uploaded_file($_FILES['file']['tmp_name'])) {
    echo $_FILES['file']['tmp_name'];
}

$archive = new PclZip($_FILES['file']['tmp_name']);
$extractpath = "../series/" . $_POST["serie"] . "/" . $_POST["capitulo"];

echo $extractpath;

if (file_exists($extractpath)) {

} else {
   mkdir($extractpath, 0755);
}

if (($archive->extract(PCLZIP_OPT_PATH, $extractpath, PCLZIP_CB_PRE_EXTRACT, 'preextract') == 0)) {
    echo "\n error in extraction";
} else {
    echo "\n done";
}
?>

【问题讨论】:

    标签: php image upload zip


    【解决方案1】:

    一些事情......

    1. 您需要增加最大文件大小以提交更大的文件:

      ini_set( 'upload_max_filesize', '100M' );
      ini_set( 'post_max_size', '100M' );
      
    2. 更改您的file_exists 支票:

      if ( !file_exists( $extractpath ) )
          mkdir( $extractpath, 0755 );
      
    3. 更改您的扩展检查:

      return in_array( $info['extension'], array( 'png', 'jpg', 'jpeg', 'gif' ) ) ? 1 : 0;
      

    我不知道为什么它只适用于一个扩展,也许PclZip 有一个设置禁止某些文件,所以寻找它。

    【讨论】:

    • 您好,首先非常感谢您的回答。 “十次失败”是指如果我上传一个包含 jpg 的 zip 文件夹,一切都很好。但是如果我对 .png 文件做同样的事情,它就不起作用了。
    • 已经看过,再次感谢。当然,问题一定是库,似乎不处理 png 和 gifs。顺便说一句,我不知道是否可以用php制作一个“进度条”。我应该尝试寻找 javascript/jquery 上传器,否则他们不会让我解压缩和所有这些东西?
    • 有 JavaScript/jQuery 插件会显示上传进度,但是如果不修改源代码、刷新内容等就无法显示解压进度。它变得复杂了。
    • 不想显示解压进度,上传后就可以解压了。我应该能够做到这一点——我想。我去外面看看,再次感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2010-11-01
    • 2011-08-26
    • 2011-08-20
    • 2013-11-21
    • 2014-10-29
    • 2011-10-19
    • 1970-01-01
    • 2011-02-13
    相关资源
    最近更新 更多