Home > Backend Development > PHP Tutorial > How to download files safely with PHP_php tips

How to download files safely with PHP_php tips

WBOY
Release: 2016-05-16 19:54:43
Original
1224 people have browsed it

The example in this article describes how to download files safely with PHP. Share it with everyone for your reference, the details are as follows:

<&#63;php
header('Content-Type:text/html;Charset=utf-8');
define('ROOT_PATH', dirname(__FILE__));
/**
 * 下载文件
 * @param string $file_path 绝对路径
 */
function downFile($file_path) {
  //判断文件是否存在
  $file_path = iconv('utf-8', 'gb2312', $file_path); //对可能出现的中文名称进行转码
  if (!file_exists($file_path)) {
    exit('文件不存在!');
  }
  $file_name = basename($file_path); //获取文件名称
  $file_size = filesize($file_path); //获取文件大小
  $fp = fopen($file_path, 'r'); //以只读的方式打开文件
  header("Content-type: application/octet-stream");
  header("Accept-Ranges: bytes");
  header("Accept-Length: {$file_size}");
  header("Content-Disposition: attachment;filename={$file_name}");
  $buffer = 1024;
  $file_count = 0;
  //判断文件是否结束
  while (!feof($fp) && ($file_size-$file_count>0)) {
    $file_data = fread($fp, $buffer);
    $file_count += $buffer;
    echo $file_data;
  }
  fclose($fp); //关闭文件
}
downFile(ROOT_PATH . '/down/Sunset.jpg');
&#63;>

Copy after login

Note: The file name can accept Chinese names. The file format is utf-8.

Readers who are interested in more PHP-related content can check out the special topics on this site: "Summary of php curl usage", "Summary of PHP operations and operator usage", "Summary of PHP network programming skills", "Introduction to PHP basic syntax tutorial", "Summary of PHP operating office document skills (including word, excel, access, ppt)" , "php date and time usage summary", "php object-oriented programming introductory tutorial", "php string (string) usage summary", " php mysql database operation introductory tutorial" and "php common database operation skills summary"

I hope this article will be helpful to everyone in PHP programming.

Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template