php中zip文件上传服务器要怎么实现

 我来答
匿名用户
2017-05-01
展开全部

1.先来个请求页面upload.html

    <html>  
    <head>  
      <title>Administration - upload new files</title>  
    </head>  
    <body>  
    <h1>Upload new news files</h1>  
    <form enctype="multipart/form-data" action="upload.php" method=post>  
      <input type="hidden" name="MAX_FILE_SIZE" value="1000000">  
      Upload this file: <input name="userfile" type="file">  
      <input type="submit" value="Send File">  
    </form>  
    </body>  
    </html>


2.php处理客户端请求的数据upload.html

  <html>  
    <head>  
      <title>Uploading...</title>  
    </head>  
    <body>  
    <h1>Uploading file...</h1>  
    <?php  
    //Check to see if an error code was generated on the upload attempt  
      if ($_FILES['userfile']['error'] > 0)  
      {  
        echo 'Problem: ';  
        switch ($_FILES['userfile']['error'])  
        {  
          case 1:   echo 'File exceeded upload_max_filesize';  
                    break;  
          case 2:   echo 'File exceeded max_file_size';  
                    break;  
          case 3:   echo 'File only partially uploaded';  
                    break;  
          case 4:   echo 'No file uploaded';  
                    break;  
          case 6:   echo 'Cannot upload file: No temp directory specified.';  
                    break;  
          case 7:   echo 'Upload failed: Cannot write to disk.';  
                    break;  
        }  
        exit;  
      }  
      // Does the file have the right MIME type?  
      if ($_FILES['userfile']['type'] != 'text/plain')  
      {  
        echo 'Problem: file is not plain text';  
        exit;  
      }  
      // put the file where we'd like it  
      $upfile = '/uploads/'.$_FILES['userfile']['name'];  
      if (is_uploaded_file($_FILES['userfile']['tmp_name']))   
      {  
         if (!move_uploaded_file($_FILES['userfile']['tmp_name'], $upfile))  
         {  
            echo 'Problem: Could not move file to destination directory';  
            exit;  
         }  
      }   
      else   
      {  
        echo 'Problem: Possible file upload attack. Filename: ';  
        echo $_FILES['userfile']['name'];  
        exit;  
      }  
      echo 'File uploaded successfully<br><br>';   
      // reformat the file contents  
      $fp = fopen($upfile, 'r');  
      $contents = fread ($fp, filesize ($upfile));  
      fclose ($fp);  
      $contents = strip_tags($contents);  
      $fp = fopen($upfile, 'w');  
      fwrite($fp, $contents);  
      fclose($fp);  
      // show what was uploaded  
      echo 'Preview of uploaded file contents:<br><hr>';  
      echo $contents;  
      echo '<br><hr>';  
    ?>  
    </body>  
    </html>


3.php文件下载

  <?php  
        $filePath = "template/";//此处给出你下载的文件在服务器的什么地方  
        $fileName = "template.xls";  
        //此处给出你下载的文件名  
        $file = fopen($filePath . $fileName, "r"); //   打开文件  
        //输入文件标签  
        Header("Content-type:application/octet-stream ");  
        Header("Accept-Ranges:bytes ");  
        Header("Accept-Length:   " . filesize($filePath . $fileName));  
        Header("Content-Disposition:   attachment;   filename= " . $fileName);  
        //   输出文件内容  
        echo fread($file, filesize($filePath . $fileName));  
        fclose($file);  
        exit;  
    ?>


总的来说,上面的3个代码段只是简单介绍了php文件的上传下载,还有很多问题要解决,就例如上传大文件的时候怎么处理,批量上传、大文件下载等等问题。当然跟java一样,php也有很多框架可以解决这方面。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式