类ZipArchive(),函数有些错误

时间:2016-09-26 07:08:44

标签: php

我现在在代码中找错了2天:

<?php

echo $_FILES['import']['name']; ?> <br/> <?php
echo $_FILES['import']['type']; ?> <br/> <?php
echo $_FILES['import']['size']; ?> <br/> <?php
echo $_FILES['import']['tmp_name']; ?> <br/> <?php
echo $_FILES['import']['error'];

if ($_FILES['import']['error'] > 0) {
    echo "Erreur lors du transfert";
}  
else  {
    echo "Transfert Ok" ;?> <br/> <?php

    $nom = $_FILES['import']['name'];
    $localisation = $_FILES['import']['tmp_name'];

    echo $nom; ?> <br/> <?php
    echo $localisation; ?> <br/> <?php

    $zip = new ZipArchive();

    $res = $zip->open($localisation."/".$nom);
//  echo $res;
    if($res === TRUE)   {
        echo 'ok';
    }
    else {
        echo 'erreur';
    }
}
?>

我的问题在于ZipArchive类。至于我,open()extractTo()函数不起作用。

始终编辑此代码以查找解决方案。现在我试图“打开”,它不起作用。
我不知道为什么。至于我,路径不正确,但当我看到路径(使用echo $localisation."/".$nom)时,实际上是。

是否有任何人对首次亮相的开发者有解决方案或建议?

1 个答案:

答案 0 :(得分:1)

你的函数可能不起作用的原因可能是行$res = $zip->open($localisation."/".$nom); - 这会导致像/tmp/a23mt.tmp/somefile.zip这样的字符串出错。尽管您可能希望指定一个特定的文件夹路径来保存上传的文件而不是脚本的当前工作目录,但以下内容可能会有所帮助。

/* for convenience, create an object representation of the uploaded file */
$file=(object)$_FILES['import'];
/* assign variables */
$name=$file->name;
$type=$file->type;
$size=$file->size;
$tmp=$file->tmp_name;
$error=$file->error;



if( $error==UPLOAD_ERR_OK ){
    if( is_uploaded_file( $tmp ) ){

        /* need to store the file somewhere */
        $target = __DIR__ . DIRECTORY_SEPARATOR . $name;

        /* move the uploaded file before processing */
        $result = move_uploaded_file( $tmp, $target );

        /* was the file moved successfully? */
        if( file_exists( $target ) ){
            clearstatcache();

            /* do stuff - zip */
            $zip = new ZipArchive();
            $result = $zip->open( $target );

            echo $result ? 'ok' : 'erreur';
        } else {
            echo "Error moving/saving file!";
        }

    } else {
        echo "Error! Not an uploaded file...attempted hack!"
    }
} else {
    echo "Erreur lors du transfert!"
}