2016-09-26 31 views
3

我现在在我的代码寻找错误2天:类ZipArchive(),某些错误与功能

<?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)时,它实际上是。

有没有人有解决方案或建议的初次发明者?

+0

任何错误日志,你可以添加到问题?这对其他人提供解决方案将会有所帮助。 – dubes

+0

我现在没有错误,只是这个代码在if条件中没有“输入”。 (if($ res === TRUE){echo'ok'; })。我正在尝试这个帖子下的解决方案 –

回答

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!" 
} 
+0

感谢这个解决方案,它的工作原理!现在,我试图提取我的文件,非常感谢。 –