2011-06-09 140 views
1

有沒有人知道上傳文件(.mp3或.wav或.txt或.whatever)的好方法,並在移動到目錄之前壓縮此文件?PHP文件上傳和zip上傳

因此,用戶上傳.mp3文件之前,此文件被移動到特定的目錄,它將被壓縮,然後移動。

請指教。

謝謝

回答

5

看看在zip擴展:

http://www.php.net/manual/en/zip.examples.php

我看着你鏈接到代碼(如果你在問題中包含它,它會一直好)和做了一些更改:

$nameFile = $_FILES['file']['name']; 
$tmpName = $_FILES['file']['tmp_name']; 
$download_folder = './files/'; 

$zip = new ZipArchive(); 
$fileconpress = $download_folder.$nameFile.".zip"; 

$conpress = $zip->open($fileconpress, ZIPARCHIVE::CREATE); 
if ($conpress === true) 
{ 
    $zip->addFile($tmpName); 
    $zip->close(); 
    echo $fileconpress."<br/>"; 
    echo "yess !! Success!!!! "; 
} 
else echo " Oh No! Error"; 

重要的部分和可能是什麼導致您的錯誤是$ download_folder。您需要定義要保存文件的路徑。

我也去掉了fread(),您可以將文件只加載直接與addFile()

+0

不是爲我工作。我首先需要保存臨時文件,之後我可以將它們壓縮成一個zip文件。直接將tmp文件保存爲zip文件對我無效。它只創建zip文件,但不包含任何內容。 – 2015-11-13 20:18:22

+0

我知道它太晚了..addfile作爲2個參數,所以可能你應該這樣做'$ zip-> addFile($ tmpName,$ giveAfilename.jpg);' – Jeeva 2017-02-22 05:30:56

0

您可以使用PHP的運行shell命令,並使用它們來使第三方軟件/你的OS來壓縮能力的壓縮對象的爲你的文件。看 - http://php.net/manual/en/function.shell-exec.php

或出現郵編擴展PHP看到的 - http://php.net/manual/en/book.zip.php

+0

http://www.facebook.com/topic.php?uid=122203764461419&topic=337我正在使用它,但我不明白文件存儲在哪裏!你可以幫幫我嗎? – 2011-06-09 19:48:49