以前一直在做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文件上传下载程序 使用说明: 一共有5个程序,说明如下: 1. file.sql --- 本程序要用到的数据库表的结构[注:数据库用的是test] 2. upload.php --- 上传表单 3. submit.php --- 上传处理程序 4. ...
以下是对"PHP文件上传类"的详细解析: 1. **类的结构**: - 一个PHP文件上传类通常包含一系列的方法,如`upload()`用于执行实际的文件上传操作,`checkFileSize()`用于检查文件大小,`checkFileType()`用于验证...
php文件上传下载导出 包含可视化成分,可以酌情添加其他的
该类,包含文件的上传,下载,读写等方法。该类简化了,PHP程序员在原始代码中,对文件上传下载的过程
在这个"php中一个很好用的文件上传类.zip"压缩包中,包含了一个专为PHP设计的文件上传类,它提供了丰富的功能,帮助我们更方便、安全地处理文件上传操作。 首先,文件上传类通常会提供文件初始化功能。这意味着当...
在PHP中,文件上传和下载是两个非常重要的功能,它们在Web开发中有着广泛的应用,例如用户上传头像、分享文件或下载资源等。本文将详细介绍如何使用PHP实现这两个功能。 首先,我们从文件上传开始。PHP提供了`$_...
在PHP中,文件上传和下载是常见的Web应用功能,用于处理用户上传的文件或提供文件供用户下载。...总的来说,理解并熟练掌握PHP文件上传与下载的配置、错误处理和安全措施,对于开发健壮的Web应用程序是必不可少的。
本插件是一款简洁而实用的PHP文件上传解决方案,旨在帮助开发者快速集成文件上传功能,提升用户体验。下面将详细介绍这款插件的核心特性、使用方法以及相关知识点。 1. **核心特性** - **易用性**:这款插件设计...
综上所述,这20个实例文件涵盖了从基础到进阶的PHP文件上传和下载技术,可以帮助开发者更好地理解和应用这些概念,为实际项目开发提供参考。通过学习和研究这些源码,可以提升PHP文件操作的能力,提高代码质量和安全...
PHP文件上传源码主要涉及以下几个关键知识点: 1. **表单设计**:在HTML中,我们需要一个`<form>`元素来允许用户选择要上传的文件。关键属性包括`enctype="multipart/form-data"`(用于文件上传)和`method="post"`...
根据提供的文件信息,我们可以深入探讨PHP文件流下载的相关知识点,包括其原理、实现方式以及应用场景等。 ### PHP文件流下载的基本概念 文件流下载是指在Web应用中将服务器上的文件发送到客户端(如浏览器),供...
2. PHP文件上传: - `$_FILES`: 当用户通过表单提交文件时,文件信息会被存储在全局数组`$_FILES`中,包括`name`, `type`, `size`, `tmp_name`, `error`等字段。 - `move_uploaded_file()`: 安全地将上传的文件...
本教程将通过WAMP(Windows、Apache、MySQL、PHP)集成环境和PHPStorm IDE,来讲解如何实现PHP文件上传,并在HTML页面上展示上传的图片。 首先,我们需要创建一个HTML表单用于用户选择要上传的文件。在HTML代码中,...
在IT领域,文件上传下载是Web应用程序中常见且至关重要的功能。无论是用户向服务器提交数据,还是从服务器获取资源,这一交互方式都是基础且频繁的。在这个“文件上传下载.zip”压缩包中,可能包含了实现这些功能的...
在Java编程环境中,实现Linux与Windows之间的文件上传和下载是一项常见的任务,特别是在分布式系统和跨平台应用中。本文将深入探讨如何使用Java技术实现在Linux和Windows之间进行文件的互传,以及创建一个HTML界面来...
在IT领域,文件上传下载是Web应用中常见的功能,它涉及到用户交互以及数据的传输。在"文件上传下载登录注册页面"这个主题中,我们主要关注三个关键知识点:文件上传下载、文件类型判断和时间判断,以及登录注册页面...
这正是“php文件上传进度条”这一主题的核心所在。本文将深入探讨如何使用PHP结合AJAX技术实现一个动态的文件上传进度条。 ### PHP文件上传进度条的关键概念 #### 1. UploadProgressMeter类 `UploadProgressMeter`...
这个"一个php文件上传处理类库"显然提供了一个方便、高效的方式来管理这种操作。类库通常封装了复杂的细节,使得开发者可以更简单地实现文件上传功能,避免了重复造轮子的过程。 `class.upload.php-master`文件名...
然而,在实际项目中,我们通常会创建一个自定义的PHP文件上传类,以实现更灵活、更安全的文件上传管理。 这个"php文件上传类"应该具备以下关键功能和特性: 1. **设置上传限制**:首先,类应允许开发者定义上传...
php大文件上传,百兆文件上传,有进度条,有上传速度 之前发布一个大文件上传,但是问题太多,此版本相对上一个稳定得多 1,将压缩包里的 php_uploadprogress.dll 文件复制到你的PHP 安装目录里的扩展库文件夹 ...