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

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

958 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 1039
PHP怎样用正则判断一个链接是内链还是外链?
PHP怎样用正则判断一个链接是内链还是外链?

在日常文章的发表过程中,由于需要引入一些外部链接达到更好的效果与体验。但...

26 1243
PHP怎样高效快速地生成一组10条随机数?
PHP怎样高效快速地生成一组10条随机数?

猜你喜欢如果用rand()来获取随机ID是非常消耗性能的。小网站几百几千条数据...

1 372
当缓存文件大于4KB,不能用cookie时的替代方案就是session
当缓存文件大于4KB,不能用cookie时的替代方案就是session

鸥哥最近在开发一个项目,出于对用户隐私的保护,数据一概不能存储到数据表,而是...

1 369
php多维数组foreach循环
php多维数组foreach循环

多维数组在实际开发中比较常见,要foreach循环也很简单。...

0 350
PHP怎样实现从数组随机取值的效果?
PHP怎样实现从数组随机取值的效果?

在开发过程中,我们很多时候会接到猜你喜欢的随机展示效果。这个随机,用php取...

1 283
php常用基础函数isset()介绍
php常用基础函数isset()介绍

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

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

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

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

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

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

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

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

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

0 779
帝国cms百度AI黑白图像上色api接口对接插件
帝国cms百度AI黑白图像上色api接口对接插件

百度开放了系列AI功能api如图像上色、图像去雾、图像修复、无损放大、清晰...

0 320
帝国cms智能自动审核按星期几审核指定栏目带推送插件
帝国cms智能自动审核按星期几审核指定栏目带推送插件

采集站的必备资源是自动审核,要做到日收录也离不开定时发布。而本插件的自动...

0 1127
帝国cms在线考试系统模板插件
帝国cms在线考试系统模板插件

一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...

0 1157
帝国cms访问统计ip地址链接与封禁插件下载
帝国cms访问统计ip地址链接与封禁插件下载

下载鸥开发了这款帝国cms封禁ip插件,自动记录访问情况,让我们可以更快的识别...

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

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

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