下载鸥 > 网站下载 > 开发教程 > PHP

PHP新手必学文件上传下载实例

1005 2021-01-15 10:56:53

收藏

简述

都知道PHP无非就是增删改查,学会了增删改查就入门了PHP,精准像素分享一篇PHP新手必学文件上传下载实例,快来学习吧。

都知道PHP无非就是增删改查,学会了增删改查就入门了PHP,精准像素分享一篇PHP新手必学文件上传下载实例,快来学习吧。

主页index.php

<html>
<head>
<title>图片操作</title>
<style>
#contains {
width: 500px;
margin: 0 auto;
text-align: center;
color: #0F0;
}
th {
background: #ccc;
}
td {
width: 150px;
height: 50px;
text-align: center;
}
</style>
</head>
<body>
<div id="contains">
<h2>图片上传和下载</h2>
<!----------------文件上传表单------------->
<form action="doupload.php" method="post" enctype="multipart/form-data">
<input type="hidden" value="10000000" /> <!---避免上传后发现文件过大--->
<input type="file" name="pic"/>
<input type="submit" value="上传"/>
</form>
<!--------------------------------------->
<table width="500" border="0">
<tr>
<th>序号</th><th>图片</th><th>添加时间</th><th>操作</th>
</tr>
<?php
//1.打开目录
$dir = opendir("./imgs");
//2.遍历目录
$i = 0;
$color = "#ff0";
while ($f = readdir($dir)){ //$f代表这每个文件的名字
if ($f == '.' || $f == "..") continue; //处理特殊隐藏的文件
$i++;
if ($i % 2 == 0) $color = "#ccc";
else $color = "#ffa";
echo "<tr bgcolor=$color>";
echo "<td>{$i}</td>";
echo "<td><img src='./imgs/{$f}' width='150' height='50'/></td>";
echo "<td>".date("Y-m-d", filectime('./imgs/'.$f))."</td>";
echo "<td><a href='./imgs/{$f}'>查看</a>
<a href='download.php?name={$f}'>下载</a></td>";
echo "</tr>";
// echo $f." ";
}
?>
</table>
</div>
</body>
</html>

上传处理doupload.php

<?php
/* echo "<pre>";
var_dump($_FILES);
echo "</pre>";*/
//1.获取上传文件信息
$upfile = $_FILES["pic"];
$path = "./imgs/";
//2、过滤错误信息
if ($upfile["error"] > 0) {
die("上传文件错误");
}
//3、本次上传文件的大小过滤
if ($upfile["size"] > 10000000) {
die("上传文件超出限制");
}
//4、处理文件类型
$typelist = array("jpeg","jpg","png","gif");
$arr = explode(".", basename($upfile['name'])); //以'.'分割字符串为数组
$bz = array_pop($arr); //获取文件的后缀名
if (!in_array($bz, $typelist)) { //如果给定的值 value 存在于数组 array 中则返回 true
die("上传文件类型非法!".$upfile["type"]);
}
//5、设置相同文件的名字不同
$newfile = date("YmdHis").rand(100, 999).".".$bz;
//
if (is_uploaded_file($upfile["tmp_name"])) { //判断文件是否是通过post上传
//执行文件上传
if (move_uploaded_file($upfile["tmp_name"], $path.$newfile)) {//将上传的文件保存在新位置
echo "上传成功!";
echo "<a href='index.php'>浏览</a>";
}else {
die("上传失败");
}
}
?>

下载处理download.php

<?php
//1.获取于要下载的文件名
$file = "./imgs/".$_GET["name"];
// echo $file;
//2.重设响应类型
$info = getimagesize($file); //获取文件大小
// var_dump($info);
header("Content-Type:".$info["mime"]);
//3.执行下载文件名
header("Content-Disposition:attachment;filename=".$_GET["name"]);
//4.指定文件大小
header("Content-Length:".filesize($file));
//5.响应内容
readfile($file);
?>

 

本文地址:https://xzo.com.cn/develop/php/534.html

有帮助,很赞!

信息来源:精准像素
导出教程 下载word版教程
发表评论 共有条评论
关于PHP

PHP是一种服务器端、跨平台、html嵌入式的脚本语言,其功能十分强大、入门简单。在过去,民间一直有说法称“PHP是最好的编程语言”,是PHP开发者对自身所使用语言的肯定。

PHP曾是最主流的网站web开发语言之一,现在也依然十分流行。

推荐PHP开发教程
PHP判断某个时间戳(打卡、点餐、签到等)是不是今天记录的
PHP判断某个时间戳(打卡、点餐、签到等)是不是今天记录的

php判断时间戳是不是今天的实现方法:首先创建一个PHP示例文件;指定一个时间,并...

15 1102
php怎样开发一个访问密码的界面防止资源被爬取?
php怎样开发一个访问密码的界面防止资源被爬取?

互联网上每天都有很多爬虫到处爬取内容,你可能不知道他们是干嘛的,但其中肯定...

1 387
ajax发起session请求发现session无效了怎么办?
ajax发起session请求发现session无效了怎么办?

今天遇到这样一个问题:php启用了session,经过测试也发现session生效了。但在a...

1 427
宝塔Nginx免费防火墙提示post参数(post_max_size)值长度超过20w已被系统拦截怎么办?
宝塔Nginx免费防火墙提示post参数(post_max_size)值长度超过20w已被系统拦截怎么办?

页面提交post请求后被宝塔防火墙拦截,查看日志显示错误:参数值长度超过20w已...

1 547
怎样在每次发起请求时重置session_id?
怎样在每次发起请求时重置session_id?

在一些开发场景中,我们需要在每次发起请求后更新重置session_id以同步用户数...

3 391
json数据{}转为php数组[]
json数据{}转为php数组[]

json是使用非常广泛的数据,通过使用json,我们还可以实现多种语言的联动。今天...

0 359
php常用基础函数isset()介绍
php常用基础函数isset()介绍

isset() 函数用于检测变量是否已设置并且非 NULL。如果已经使用 unset() 释...

0 380
php正则提取字符串中的数字并打印输出
php正则提取字符串中的数字并打印输出

我们在网站开发的过程中经常需要处理数据,今天讲讲怎样用正则提取字符串中的...

0 402
推荐插件
帝国cms联想词搜索高级搜索插件下载
帝国cms联想词搜索高级搜索插件下载

帝国CMS自带的搜索功能虽然强大,但也有很强的局限性 -- 必须关键词完全匹配...

0 722
帝国cms自动生成文章新闻目录插件下载
帝国cms自动生成文章新闻目录插件下载

用户体验是我们的需求,百度蜘蛛的认可更是我们的需求。毕竟,没有收录排名,何来...

0 1111
帝国cms纳米数据接口(足球比赛中最新数据)
帝国cms纳米数据接口(足球比赛中最新数据)

帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...

0 391
帝国cms百度AI图像去雾api接口对接插件
帝国cms百度AI图像去雾api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像去雾的功能。经过实际...

0 447
帝国cms批量添加后台用户插件
帝国cms批量添加后台用户插件

使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...

0 761
帝国cms网站会员登录与退出历史记录日志插件
帝国cms网站会员登录与退出历史记录日志插件

帝国cms默认只有上次登录时间与ip,没有一个记录清单,所以今天,我们分享这个帝...

0 392
帝国cms多栏目多数据表自动审核推送插件
帝国cms多栏目多数据表自动审核推送插件

本插件基于帝国cms帝国cms每日自动审核插件,在自动审核指定条数信息的基础上...

0 908
帝国cms自动给正文关键词添加tag内链
帝国cms自动给正文关键词添加tag内链

帝国cms有自带的给关键词添加内链功能,但需要手动添加关键词,容易出现疏漏和...

0 824
客服QQ:341553759
扫码咨询 常见问题 >
官方交流群:90432500
点击加入