`
wenrunchang123
  • 浏览: 251206 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

php文件上传、下载

    博客分类:
  • php
 
阅读更多

以前一直在做java,最近转行去搞php开发,总觉得力不从心。这几天有个需求,是关于php的文件上传和下载的。给大家分享下自己的学习资料。

 

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也有很多框架可以解决这方面。

分享到:
评论

相关推荐

    php文件上传下载

    一个简单的php文件上传下载程序 使用说明: 一共有5个程序,说明如下: 1. file.sql --- 本程序要用到的数据库表的结构[注:数据库用的是test] 2. upload.php --- 上传表单 3. submit.php --- 上传处理程序 4. ...

    PHP文件上传类

    以下是对"PHP文件上传类"的详细解析: 1. **类的结构**: - 一个PHP文件上传类通常包含一系列的方法,如`upload()`用于执行实际的文件上传操作,`checkFileSize()`用于检查文件大小,`checkFileType()`用于验证...

    php文件上传下载导出

    php文件上传下载导出 包含可视化成分,可以酌情添加其他的

    PHP文件上传下载及读写

    该类,包含文件的上传,下载,读写等方法。该类简化了,PHP程序员在原始代码中,对文件上传下载的过程

    php中一个很好用的文件上传类.zip

    在这个"php中一个很好用的文件上传类.zip"压缩包中,包含了一个专为PHP设计的文件上传类,它提供了丰富的功能,帮助我们更方便、安全地处理文件上传操作。 首先,文件上传类通常会提供文件初始化功能。这意味着当...

    PHP文件上传和下载

    在PHP中,文件上传和下载是两个非常重要的功能,它们在Web开发中有着广泛的应用,例如用户上传头像、分享文件或下载资源等。本文将详细介绍如何使用PHP实现这两个功能。 首先,我们从文件上传开始。PHP提供了`$_...

    PHP文件上传与下载学习笔记

    在PHP中,文件上传和下载是常见的Web应用功能,用于处理用户上传的文件或提供文件供用户下载。...总的来说,理解并熟练掌握PHP文件上传与下载的配置、错误处理和安全措施,对于开发健壮的Web应用程序是必不可少的。

    php文件上传插件(简洁好用的上传插件)

    本插件是一款简洁而实用的PHP文件上传解决方案,旨在帮助开发者快速集成文件上传功能,提升用户体验。下面将详细介绍这款插件的核心特性、使用方法以及相关知识点。 1. **核心特性** - **易用性**:这款插件设计...

    php 20个实例文件简单上传下载源码

    综上所述,这20个实例文件涵盖了从基础到进阶的PHP文件上传和下载技术,可以帮助开发者更好地理解和应用这些概念,为实际项目开发提供参考。通过学习和研究这些源码,可以提升PHP文件操作的能力,提高代码质量和安全...

    php文件上传源码

    PHP文件上传源码主要涉及以下几个关键知识点: 1. **表单设计**:在HTML中,我们需要一个`&lt;form&gt;`元素来允许用户选择要上传的文件。关键属性包括`enctype="multipart/form-data"`(用于文件上传)和`method="post"`...

    php文件流下载.txt

    根据提供的文件信息,我们可以深入探讨PHP文件流下载的相关知识点,包括其原理、实现方式以及应用场景等。 ### PHP文件流下载的基本概念 文件流下载是指在Web应用中将服务器上的文件发送到客户端(如浏览器),供...

    php文件读写与上传下载

    2. PHP文件上传: - `$_FILES`: 当用户通过表单提交文件时,文件信息会被存储在全局数组`$_FILES`中,包括`name`, `type`, `size`, `tmp_name`, `error`等字段。 - `move_uploaded_file()`: 安全地将上传的文件...

    PHP文件上传和页面展示

    本教程将通过WAMP(Windows、Apache、MySQL、PHP)集成环境和PHPStorm IDE,来讲解如何实现PHP文件上传,并在HTML页面上展示上传的图片。 首先,我们需要创建一个HTML表单用于用户选择要上传的文件。在HTML代码中,...

    文件上传下载.zip

    在IT领域,文件上传下载是Web应用程序中常见且至关重要的功能。无论是用户向服务器提交数据,还是从服务器获取资源,这一交互方式都是基础且频繁的。在这个“文件上传下载.zip”压缩包中,可能包含了实现这些功能的...

    Java版Linux文件上传下载、windows本地文件上传下载

    在Java编程环境中,实现Linux与Windows之间的文件上传和下载是一项常见的任务,特别是在分布式系统和跨平台应用中。本文将深入探讨如何使用Java技术实现在Linux和Windows之间进行文件的互传,以及创建一个HTML界面来...

    文件上传下载登录注册页面

    在IT领域,文件上传下载是Web应用中常见的功能,它涉及到用户交互以及数据的传输。在"文件上传下载登录注册页面"这个主题中,我们主要关注三个关键知识点:文件上传下载、文件类型判断和时间判断,以及登录注册页面...

    php文件上传进度条

    这正是“php文件上传进度条”这一主题的核心所在。本文将深入探讨如何使用PHP结合AJAX技术实现一个动态的文件上传进度条。 ### PHP文件上传进度条的关键概念 #### 1. UploadProgressMeter类 `UploadProgressMeter`...

    一个php文件上传处理类库

    这个"一个php文件上传处理类库"显然提供了一个方便、高效的方式来管理这种操作。类库通常封装了复杂的细节,使得开发者可以更简单地实现文件上传功能,避免了重复造轮子的过程。 `class.upload.php-master`文件名...

    php文件上传类

    然而,在实际项目中,我们通常会创建一个自定义的PHP文件上传类,以实现更灵活、更安全的文件上传管理。 这个"php文件上传类"应该具备以下关键功能和特性: 1. **设置上传限制**:首先,类应允许开发者定义上传...

    php大文件上传,百兆文件上传,有进度条,有上传速度

    php大文件上传,百兆文件上传,有进度条,有上传速度 之前发布一个大文件上传,但是问题太多,此版本相对上一个稳定得多 1,将压缩包里的 php_uploadprogress.dll 文件复制到你的PHP 安装目录里的扩展库文件夹 ...

Global site tag (gtag.js) - Google Analytics