欢迎光临 - 我的站长站,本站所有资源仅供学习与参考,禁止用于商业用途或从事违法行为!

php教程

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

php教程 我的站长站 2020-09-28 共45人阅读

都知道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);
?>


相关推荐
  • 新手教程
  • PHP文件下载
  • 上传文件
  • php上传
  • 新手linux服务器环境配置教程

    我的站长站今天给新手朋友写一篇linux服务器环境搭建方法,只适合菜鸟。准备工作1、购买linux服务器一台,选择 CentOS 7.X以上版本2、下载一款SSH工具,用来连接服务器的,推荐使用宝塔SSH终端工具,下载地址:https://download.bt.cn/xterm/BT-Term.zip[xxid]3...

    服务器配置 154 2年前
  • 帝国CMS新手教程调用栏目别名

    帝国CMS调用网站标题灵动标签调用网站标题:<?=$public_r[sitename]?> 帝国CMS标签调用网站标题:[!--pagetitle--] 帝国CMS调用栏目别名: <?=$class_r[$GLOBALS[navclas

    帝国cms教程 259 11年前
  • 帝国CMS新手教程调用网站关键字+描叙的方法

    帝国CMS_调用网站关键字+描叙的方法 调用网站关键字:<meta name="keywords" content="&#091;!--pagekey--]" />调用网站描叙:<meta name="description" content="&#091;!--pagedes--...

    帝国cms教程 304 11年前
  • 帝国CMS新手教程调用栏目缩略图,可嵌套其他标签

    可嵌套其他标签<?php$cr=$empire->fetch1("select classimg from g_enewsclasswhere classid=&#39;$bqr[classid]&#39;");?> <img src="<?=$cr[classimg]?>">[/e:loop]// 数据表前奏 XX_enewsclass不可嵌套其他标签[e:loop={"select classi...

    帝国cms教程 342 11年前
  • 帝国CMS新手教程no.num标签的用法
    帝国CMS新手教程no.num标签的用法

    帝国CMS &#091;!--no.num--] 标签帝国CMS&#091;!--no.num--] 指定从某一数字开始显示 语法:<?=$bqno+5?> 帝国CMS&#091;!--no.num--] 输出效果为 1 2 3 4 5 6 7 8...样式 语法:<?=$bqno?>...

    帝国cms教程 399 11年前
  • PHP大文件分流下载示例代码

    <?phpset_time_limit(0);$zip_file=&#39;demo.rar&#39;; $fp=fopen($zip_file,&#39;r&#39;);//只读方式打开 $filesize=filesize($zip_file);//文件大小/***********************header头不要设置错了哦****************************/ //返回...

    php教程 15 1年前
  • PHP大文件限速下载功能示例代码分享

    PHP在开发大文件下载功能中,推荐使用文件分段下载,避免文件过大,下载失败或文件损坏。大文件限速下载PHP代码<?php//设置文件最长执行时间set_time_limit(0);if (isset($_GET[&#39;filename&#39;]) && !empty($_GET[&#39;filename&#39;])) { $file_nam...

    php教程 35 1年前
  • Nginx + X-Accel大文件下载示例代码

    Nginx + X-Accel大文件下载示例代码,做个记录以后会用到。// 启用 nginx X-Accel 下载 header(&#39;Content-Type: application/octet-stream&#39;); $encoded_fname = &#39;附件名称&#39;; header(&#39;Content-Disposition: a...

    php教程 20 1年前
  • PHP下载功能手机浏览器乱码和变成HTML格式的解决方法

    今天我的站长站在测试一款下载站源码时发现,发现电脑端下ZIP文件完美无错,用手机浏览器和第三方浏览器下载变成了乱码,苹果手机还会给ZIP下载文件变成html格式。解决方案网上找了很多种解决方法,有的说是编码没设置好,有的说函数错乱。最后测试,我的站长站...

    php教程 46 1年前
  • Accept-Length无法获取下载文件大小解决方法

    php下载文件时,我们一般会加上如下的header信息:header("Content-type: application/octet-stream");header("Accept-Ranges: bytes");header("Accept-Length:".$fileSize); //请用Content-Lengthheader("Content-Disposition: attachment; filename="...

    php教程 38 1年前
  • nginx宝塔面板上传文件环境配置方法

    在使用nginx系统的宝塔面板开发上传或下载文件功能时,需要首先要配置下载nginx或PHP的参数。否则上传下载大文件时,总是报错,上传小一点的文件,就不报错。修改nginx配置打开nginx管理界面,看到“性能调整”,主要修改连接超时、最大上传文件大小,其他的也可...

    宝塔面板 55 1年前
  • DISCUZ升级后不显示“选择文件上传”按钮

    小编自己的discuz论坛由于不是最新版本,每次登陆论坛都会频繁的有升级提示,这次由于小编手贱了一下下,点击了升级flash player 14。最终导致小编的论坛中就再也看不到:选择文件上传“那个按钮了,图片添加到帖子内容中上方没有:选择文件上传”。这个解决方...

    discuz教程 384 7年前
  • 宝塔面板修改PHP文件上传大小
    宝塔面板修改PHP文件上传大小

    宝塔面板修改PHP文件上传大小很简单,直接打开宝塔面板WEB端进入软件商店选择已经安装且正在使用的PHP版本号点击设置->配置文件搜索post_max_size修改后面的值(自己需要多少就改成多少,切勿过大,防止...

    宝塔面板 379 3年前
  • PHP文件上传示例代码

    第一步,建立上传文件的表单。<html><body><form action="upload_file.php" method="post"enctype="multipart/form-data"><label for="file">Filename:</label><input type="file" name="file&qu...

    php教程 36 3年前
  • PHP新手必学文件上传下载实例

    都知道PHP无非就是增删改查,学会了增删改查就入门了PHP,我的站长站分享一篇PHP新手必学文件上传下载实例,快来学习吧。主页index.php<html><head><title>图片操作</title><style>#contains {width: 500px;margin: 0 auto;text-align: center;color: #0F...

    php教程 45 3年前
  • php上传大文件必备配置方法

    项目要求如果你的项目需要用到大文件上传或下载功能,就必须首先修改PHP的配置才行,否则上传或下载操作就会超时,操作失败。操作步骤打开php配置文件php.ini,首先找到; file uploads ;区域,有影响文件上传的以下几个参数:file_uploads = on ;//是否允许...

    php教程 52 1年前
  • 百度编辑器上传word转html

    后台上传word转html到编辑器中,编辑器是使用的百度编辑器,先在页面合适的位置写个上传框<button type=”button” name=”fileword” id=”upload-fileword”>上传word文件</button>前端用的layui框架,不需要写提示框,图个方便,大家自行选择<script>layui...

    php教程 78 2年前
  • jQuery+PHP实现简单的图片上传功能

    图片上传思路:通过ajax实现图片上传,然后把PHP返回的图片地址,加入到隐藏字段中,最后通过表单提交给后台PHP,代码如下HTML代码 zimg.html文件:<!DOCTYPE html><html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, init...

    php教程 77 3年前
  • PHP新手必学文件上传下载实例

    都知道PHP无非就是增删改查,学会了增删改查就入门了PHP,我的站长站分享一篇PHP新手必学文件上传下载实例,快来学习吧。主页index.php<html><head><title>图片操作</title><style>#contains {width: 500px;margin: 0 auto;text-align: center;color: #0F...

    php教程 45 3年前
  • 京东图床上传api接口源码

    API接口源码<?phpif (class_exists(&#39;CURLFile&#39;)) { // php 5.5$post[&#39;file&#39;] = new \CURLFile(realpath($_FILES[&#39;Filedata&#39;][&#39;tmp_name&#39;]));} else {$post[&#39;file&#39;] = &#39;@&#39;....

    php教程 148 3年前