文档章节

php文件上传与下载

mrmusic
 mrmusic
发布于 2016/04/03 00:52
字数 697
阅读 94
收藏 6

php文件上传

在通过form表单进行文件上传的,PHP需要用到预定义变量$_FILES

$_FILES['userfile']['name']    客户端机器文件的原名称。

$_FILES['userfile']['type']  文件的 MIME 类型,如果浏览器提供此信息的话。一个例子是“image/gif”。不过此 MIME 类型在 PHP 端并不检查,因此不要想当然认为有这个值。

$_FILES['userfile']['size']   已上传文件的大小,单位为字节。

$_FILES['userfile']['tmp_name']    文件被上传后在服务端储存的临时文件名。

$_FILES['userfile']['error']   和该文件上传相关的错误代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件上传</title>
</head>
<body>
<form action="upload1.php" method="post" enctype="multipart/form-data">
<div>
    <input type="file" name="textfile"><p>
    <input type="submit" value="上传文件">
</div>
   
</form>
</body>
</html>

对应处理的PHP代码

<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2016/4/2
* Time: 23:55
*/
header('content-type:text/html;charset=utf-8');
print_r($_FILES);
//1.通过$_FILES文件上传变量接收上传文件信息
$fileInfo=$_FILES['textfile'];
$filename=$fileInfo['name'];
$type=$fileInfo['type'];
$tmp_name=$fileInfo['tmp_name'];
$size=$fileInfo['size'];
$error=$fileInfo['error'];
if($error==UPLOAD_ERR_OK){
   if(move_uploaded_file($tmp_name, "upload/".$filename)){
       echo '文件'.$filename.'上传成功';
   }else{
       echo '文件'.$filename.'上传失败';
   }
}else{
   //匹配错误信息
   switch($error){
       case 1:
           echo '上传文件超过了PHP配置文件中upload_max_filesize选项的值';
           break;
       case 2:
           echo '超过了表单MAX_FILE_SIZE限制的大小';
           break;
       case 3:
           echo '文件部分被上传';
           break;
       case 4:
           echo '没有选择上传文件';
           break;
       case 6:
           echo '没有找到临时目录';
           break;
       case 7:
       case 8:
           echo '系统错误';
           break;
   }
}

上面的代码只能说我把客户端过来的文件,放在了PHP文件对应的文件夹下面,主要用的的函数就是move_uploaded_file (将上传的文件移动到新位置)

另外传输文件必须要用post方法进行提交,可以用is_uploaded_file ($_FILES['userfile']['tmp_name'] )进行检测。

这些也只是简单的完成文件上传,一般在实际项目中还要针对不同的文件类型,文件大小进行判断。

文件的下载

对于文件的下载第一种方式就是通过a标签来完成,直接用href填写对应的连接地址

<a href="1.jpg">下载1.jpg</a>

第二种方式:

通过程序来完成:

php得到文件的信息来进行下载处理:

<?php 
$filename=$_GET['filename'];
header('content-disposition:attachment;filename='.basename($filename));
header('content-length:'.filesize($filename));
readfile($filename);

对于head函数:

Content-Disposition为属性名  attachment为以附件方式下载

Content-Length首部告诉浏览器报文中实体主体的大小

readfile函数输出一个文件来实现下载的功能

© 著作权归作者所有

mrmusic
粉丝 11
博文 34
码字总数 23901
作品 0
数据库管理员
私信 提问
php文件上传与下载

php文件上传 在通过form表单进行文件上传的,PHP需要用到预定义变量$_FILES $_FILES['userfile']['name'] 客户端机器文件的原名称。 $_FILES['userfile']['type'] 文件的 MIME 类型,如果浏览......

Corwien
2016/04/19
183
0
整合百度UEditor上传图片到阿里云OSS

前言 将图片上传到阿里云OSS是一种趋势,一个必然。当你的项目图片过多,需要频繁上传和替换的时候,用阿里云OSS可以很方便的管理你的图片,节省服务器空间,大大提高了效率。阿里云OSS是阿里...

zacklee
2017/09/17
0
0
php上传文件如何获得下载连接

php上传文件如何获得下载连接,通过php页面把一个test.EXE上传到服务器,要如何才能够让php上传完之后,自动创建一个下载地址并显示出来给用户,让用户可以通过该地址下载到test.EXE?...

GoogleGood
2013/11/23
240
2
08-05更新ThinkPHP+swfupload多图上传实例 经典实用的php多图上传

先上一张图片给大家看看效果,有需要就下载学习。不一定非要在ThinkPHP里,只是我非常喜欢去用ThinkPHP做开发了。 好了。现在咱们需要的东西是,下载一个swfupload.js网上很多,自己百度吧....

3147972
2014/03/21
0
0
PHP版微信权限验证配置,音频文件下载,FFmpeg转码,上传OSS和删除转存服务器本地文件

一、概述和通过config接口注入权限验证配置 由于微信的(如:录音文件)上传到微信服务器上,。而我们需要长期保存,我们需要把资源从微信服务器转存到自己服务器,或者阿里云OSS/七牛云。 ...

Jack088
2018/04/14
78
1

没有更多内容

加载失败,请刷新页面

加载更多

centos7 linuxdeployqt qt5.13.1 打包程序

原文链接:https://www.cnblogs.com/linuxAndMcu/p/11016322.html 一、简介 linuxdeployqt 是Linux下的qt打包工具,可以将应用程序使用的资源(如库,图形和插件)复制到二进制运行文件所在的...

shzwork
5分钟前
0
0
IDEA 配置Springboot项目热部署

实现的方式概述 注意以下的热部署方式在IDEA是默认没有打开自动编译的,手动编译需要快捷键(Ctrl+Shift+F9),自动编译的修改配置如下:(注意刷新不要太快,会有1-2秒延迟) File-Settings-C...

小强的进阶之路
16分钟前
3
0
免费数据分析工具:secsoso

前段时间思考了理想数据分析平台,之后我们根据这个思路开发了spl语言并提供了一个数据分析平台,这个平台主要用在搜索ES,数据库索引中的数据。但后来发现对文件的事后处理也是个非常重要的...

赛克蓝德
18分钟前
1
0
暗黑2不能正常启动?带你轻松使用WIN10运行游戏

暗黑破坏神2这款游戏由于年代比较久远,所以设置启动这方面与现在的大部分游戏有很大差距,由于当初完美运行暗黑2是当年使用最多的XP系统,在使用现在大多数玩家使用的WIN7到WIN10系统常会出...

太空堡垒185
22分钟前
2
0
maven项目对象模型(二)

1.4.4.传递性依赖 一个传递性依赖就是一个依赖的依赖。如果project-a依赖于project-b,而后者接着依赖于project-c,那么project-c就是被认为是project-a的传递性依赖。如果project-c依赖于p...

万建宁
22分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部