文件上传
文件上传
目的:用户可以通过浏览器,将本地文件上传到服务器
以单文件上传为例
sinFun.php
<?php
/**
*文件上传函数
*
*@param string $name 文件上传文件域的name值
*@param string $dir 文件上传的指定保存路径
*@param array $allow 文件上传允许的文件类型
*
*return string $filename 文件名 失败时,返回false
*
*/
function uploads($name,$dir,$allow=array('image/jpeg','image/png'))
{
//1. 判断文件上传错误
if($_FILES[$name]['error'] > 0) {
//文件上传出错
switch($_FILES[$name]['error']) {
case 1:
echo '上传的文件大小超过配置文件中的upload_max_filesize值';
break;
case 2:
echo '上传文件的大小超过表单提交的最大值';
break;
case 3:
echo '文件只有部分上传';
break;
case 4:
echo '没有文件被上传';
break;
case 6:
echo '找不到临时文件夹';
break;
case 7:
echo '文件写入失败';
break;
default :
echo '其它错误';
break;
}
return false;
}
//2. 判断你上传文件的类型是否是你想要的类型
if(!in_array($_FILES[$name]['type'],$allow)) {
echo '文件类型不符合';
return false;
}
//3. 获取上传文件后缀名
$suffix = pathinfo($_FILES[$name]['name'],PATHINFO_EXTENSION);
//4. 起名字
$filename = date('Ymd').uniqid().mt_rand(0,9999999).'.'.$suffix;
//5. 判断保存的路径是否存在
$save_path = rtrim($dir,'/');
$save_path .= '/';
$save_path .= date('Ymd');
// var_dump($save_path);
if(!file_exists($save_path)) {
mkdir($save_path,777,true);
}
//拼接一个完整的保存路径
$path = $save_path.'/'.$filename;
// var_dump($path);die;
//6 判断是否是HTTP post方式上传
if(!is_uploaded_file($_FILES[$name]['tmp_name'])) {
echo '传输方式不对';
return false;
}
//7 移动图片
if(!move_uploaded_file($_FILES[$name]['tmp_name'], $path)) {
echo '移动失败';
return false;
}
//返回移动成功的文件名
return $filename;
}
?>
upload.html
<!DOCTYPE html>
<html lang="zh" dir="ltr">
<head>
<meta charset="utf-8">
<title>单文件上传</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
上传头像:<input type="file" name="profile" />
<button>提交</button>
</form>
<!--
注意:
1. 表单提交的方式必须是 post
2. form表单中必须添加enctype属性
3. input 中要设置name属性
-->
</body>
</html>
upload.php
<?php
include("./sinFun.php");
$result = uploads('profile','./upload',array('image/jpeg','image/png'));
var_dump($result);
?>

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
想把python爬虫了解透彻吗?一起盘它 ! !
原理 传统的爬虫程序从初始web页面的一个或多个url开始,并获取初始web页面的url。在抓取web页面的过程中,它不断地从当前页面中提取新的url并将其放入队列中,直到满足系统的某些停止条件。聚焦爬虫的工作流程比较复杂。需要根据一定的网页分析算法对与主题无关的链接进行过滤,保留有用的链接并将其放入正在等待的URL队列中。 然后,根据一定的搜索策略,从队列中选择要抓取的下一个页面URL,重复这个过程,直到达到系统的一定条件。此外,爬虫程序捕获的所有web页面将由系统存储、分析、过滤和索引,以供后续查询和检索。 所以一个完整的爬虫一般会包含如下三个模块: 网络请求模块 爬取流程控制模块 内容分析提取模块 网络请求 我们常说爬虫其实就是一堆的http(s)请求,找到待爬取的链接,然后发送一个请求包,得到一个返回包,当然,也有HTTP长连接(keep-alive)或h5中基于stream的websocket协议,这里暂不考虑; 所以核心的几个要素就是: url 请求header、body 响应herder、内容 URL 爬虫开始运行时需要一个初始url,然后会根据爬取到的html文章,解析...
-
下一篇
2019最细腻的python入门学习图,你难道不想了解一下吗?
前言 最近python火爆程度可谓是顶级流量语言,认识它的人也越来越多,当然学习的人也是蒸蒸日上,隐隐有第一语言的噱头,学的人多了,小白自然也很多,你们在学习的过程中总会遇到一些烦恼,不知道从何学起,都希望能够得到一份python学习路线图。 对于一些0基础的想要学习python的人来说,学习方法非常重要,学习方法不对,努力也白费,所以我们需要有一个正确的学习方法。 Python学习路线一:Python基础 必学知识:【Linux基础】【Python基础语法】【Python字符串】【文件操作】【异常处理】【Python面向对象】【项目实战】 路线讲解:该路线循序渐进,科学合理,帮助学习者建立正确的编程思想,具备基本的编程能力; Python学习路线二:Python高级编程 必学知识:**【Python平台迁移Linux】【Python常用第三方库】【Python高级语法】【Python正则表达式】【网路编程】【系统编程】【数据结构与算法】【项目实战】** 路线讲解:该路线强调数据结构和算法的学习,着重提升学习者的编程核心能力;使学习者能够熟练掌握Python高级用法及网络相关知识,能够...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 2048小游戏-低调大师作品
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- MySQL数据库在高并发下的优化方案
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker快速安装Oracle11G,搭建oracle11g学习环境