设为首页
收藏本站
切换到窄版
登录
立即注册
找回密码
搜索
搜索
本版
帖子
用户
快捷导航
论坛
BBS
C语言
C++
NET
JAVA
PHP
易语言
数据库
IE盒子
»
论坛
›
IE盒子
›
PHP
›
PHP文件的上传与下载
返回列表
发帖
查看:
107
|
回复:
2
PHP文件的上传与下载
[复制链接]
风木木
风木木
当前离线
积分
10
3
主题
5
帖子
10
积分
新手上路
新手上路, 积分 10, 距离下一级还需 40 积分
新手上路, 积分 10, 距离下一级还需 40 积分
积分
10
发消息
发表于 2023-3-5 04:36:29
|
显示全部楼层
|
阅读模式
今天给大家介绍的是PHP文件的上传与下载,分为两部分,第一部分:文件的上传,第二部分:文件的下载;
一.文件的上传
原理:将客户端的文件上传到服务器端,在将服务器端的临时文件移动到指定目录即可。
客户端:准备一个表单页面,表单的发送方式为post,并且添加enctype="multipart/form-data",记住:发送方式一定为post,并且form里面一定要添加enctype="multipart/form-data",两者缺一不可。
以下为客户端的简单实现代码:
服务器:用PHP预定义变量$_FILES来接收传过来文件,以下为客户端接收页面的截图:
$_FILES变量解析,以下为截图:
数组解析:myfile为表单提交页面自定义的name;name为上传文件的名字;type为上传文件的原始名称;tmp_name为上传文件的临时保存文件的位置;error为上传文件的错误信息;size为上传文件的大小;
服务端保存文件的两种方式:
第一种:通过move_uploaded_file($tmp_name,$filename)函数实现,以下为截图:
第二种:通过copy()函数实现,以下为截图:
文件上传常规配置解析,这些配置选项都在php.ini文件中,以下为截图:
文件上传的其他配置解析,以下为截图:
上传文件错误信息说明,以下为截图:
客户端上传文件限制,以下为截图:
服务器端上传文件限制(单文件上传实例):以下为截图:
二.文件的下载
文件的下载一种是可以通过表单的超链接方式实现,这个主要是实现浏览器不识别的文件类型,例如:
对于一些浏览器识别的文件,比如图片,视频来说就要通过PHP代码来实现了,以下为实现过程:
上面的这种方式虽然实现了文件的下载,但是也是有他的缺陷性的,比如不能批量下载,而且下载完之后浏览器的页面会跳转,严重影响我们的业务,下面的这种方式就解决了这个问题。
<?php
/**
*@params string $url 要下载的文件地址
*@params string $filePath 要保存的文件位置
*/
function downFile($url,$filePath){
if($url==&#39;&#39; || $url==NULL){
return &#34;下载地址不能为空&#34;;
}
$ext_name = strrchr($url,&#39;.&#39;);//获取文件的扩展名
ob_start();//打开输出缓冲区,所有的输出信息不在发送给浏览器,保存在缓冲区
readfile($url);//将文件写入到缓冲区
$file_data = ob_get_contents();//获取缓冲区文件内容,内容为二进制
$filename = &#34;./&#34;.$filePath.time().$ext_name;//构建保存文件位置
ob_end_clean();//清空缓冲区
$local_file = fopen($filename,&#39;a&#39;);//打开文件
$fwrite($local_file,$file_data);//将内容写入文件
fclose($local_file);//关闭文件
}通过这个函数,我们就可以轻松实现文件的下载,而且我们可以循环调用来实现批量下载。
回复
使用道具
举报
严昌飞
严昌飞
当前离线
积分
23
1
主题
13
帖子
23
积分
新手上路
新手上路, 积分 23, 距离下一级还需 27 积分
新手上路, 积分 23, 距离下一级还需 27 积分
积分
23
发消息
发表于 2023-3-5 04:37:18
|
显示全部楼层
大神,如果我上传到阿里云服务器,路径那里怎么写呢
回复
使用道具
举报
天赐家长
天赐家长
当前离线
积分
12
3
主题
6
帖子
12
积分
新手上路
新手上路, 积分 12, 距离下一级还需 38 积分
新手上路, 积分 12, 距离下一级还需 38 积分
积分
12
发消息
发表于 2023-3-5 04:38:11
|
显示全部楼层
不要777,目录755
回复
使用道具
举报
返回列表
发帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表