上传PHP文件和上传zip

时间:2011-06-09 19:34:32

标签: php upload zip

有没有人知道上传文件(.mp3或.wav或.txt或.whatever)的好方法,并在移动到目录之前压缩此文件?

因此用户上传.mp3文件,在此文件移动到特定目录之前,它将被压缩然后移动。

请告知。

谢谢

3 个答案:

答案 0 :(得分: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()

的zip对象中

答案 1 :(得分:0)

您可以使用PHP运行shell命令并使用它们制作第三方软件/您的操作系统来为您压缩文件。见 - http://php.net/manual/en/function.shell-exec.php

或者有针对php的Zip扩展,请参阅 - http://php.net/manual/en/book.zip.php

答案 2 :(得分:0)

我认为,尤其是当您不知道客户或用户上传哪种文件时,这是在zip exe中上传每种类型文件的最佳方法。 通过这种方式,您应该首先在要上传文件的服务器中设置方向,然后使用:

<?php
$target_dir = '/www/yoursite.com/public_html/sth';
$ext = explode(".", $_FILES["filename1"]["name"]);
$ext = end($ext);
$newfilename = 'resume'. '.' .$ext;
$zip = new ZipArchive();
$zip->open('/www/yoursite.com/public_html/sth .'/'.'resume'.'.zip', 
ZipArchive::CREATE);
$zip->addFile($_FILES['filename1']['tmp_name'],$newfilename);
$zip->close();
?>

以朋友的身份关注我的向导

当您想使用此代码时,您应该了解以下几点:

  1. $ target_dir->您要上传文件的服务器地址
  2. 在这部分代码中,我想获取文件扩展名,直到我 压缩文件类型

    $ext = explode(".", $_FILES["filename1"]["name"]);
    $ext = end($ext);
    $newfilename = 'resume'. '.' .$ext;
    
  3. 在这里我在服务器中命名了我的zip文件

    $zip->open('/www/yoursite.com/public_html/sth .'/'.'resume'.'.zip',
    
  4. ,在代码结尾,我们得到了我在此处命名为的upoloade文件 “ filename1(这是您在html中输入的名称)”

    $zip->addFile($_FILES['filename1']['tmp_name'],$newfilename);