PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

(进阶篇)PHP的文件上传与下载实例

黄舟
黄舟 原创
2023-03-05 14:06:01 1619浏览

以下正文:

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.php

<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;  
  
?>

以上就是(进阶篇)PHP的文件上传与下载实例的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!


声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。