2016-09-26 51 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

感謝這個解決方案,它的工作原理!現在,我試圖提取我的文件,非常感謝。 –