php - 这个 php zip/图片 uploader 有什么问题?

标签 php image upload zip

我一直在制作图像 uploader ,但遇到了一些问题。

代码非常简单:它从表单和一些信息文本中获取一个文件(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";
}
?>

最佳答案

一些事情...

  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 有一项设置禁止某些文件,所以请查找一下。

关于php - 这个 php zip/图片 uploader 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9808023/

相关文章:

php - 如何阻止自定义论坛/博客上的垃圾邮件?

php - Laravel 广播 auth 路由简单地返回 "true"

php - 如何使用 PHP 最好使用 SimpleXML 附加到 XML 文件

Jquery 文件上传以编程方式删除文件

testing - 带有 SWFUpload 的 Selenium

php - 如何从 Eloquent ,silex的中间表中获取数据

javascript - 随机播放图像 javascript/jquery

html - 如何让div填充空白

java gui图像问题: doesn't display in the background

ios - 从 iCloud 上传 PHAsset(即本地设备上不存在)