文档章节

php_文件上传学习

z
 zjnn
发布于 2017/04/03 23:52
字数 365
阅读 4
收藏 0

文件上传

文件上传通过html文件中的表单进行上传;

<form action="1.php" method="post" enctype="multipart/form-data">
<p><input type="file" name="pic" /></p>
<p><input type="submit" value=" 提交 " /></p>
</form>

注意写上传表单时,form中必须写:enctype="multipart/form-data";

表单提交到php页面后,可以通过超全局变量$_FILES,进行获取提交文件的信息;

查看这个超全局变量可以看出得到一个数组;

$_FILES['pic']['name']:原始文件名

$_FILES['pic']['type']:文件类型

$_FILES['pic']['tmp_name']:临时文件

$_FILES['pic']['error']:错误代码,0为无错误

$_FILES['pic']['size']:文件大小(字节)

我们需要获取的这个文件存在与临时文件中,在php文件结束后就会删除,使用$_FILES['pic']['tmp_name']来获取临时文件及其位置,使用move_uploaded_file('文件的位置','文件移动到的位置');来获取表单提交到php文件中的文件,并将其存放到指定位置。

生成随机文件名并按日期存储

//生成随机文件名

$fname = rand(10000,99999);

//获取文件后缀

$ext = strrchr($_FILES['pic']['name'],'.');

//连接创建目录

$path = './'.date('Y/m/d');

if(!is_dir($path)){

        mkdir($path,0777,true);

}

//mkdir的参数2为最高级权限,参数3为true表示进行联级创建,默认为false

//此时新的目录为$path .'/'. $fname . $ext

str_shuffle();:将字符串进行打乱

substr(str,0,num);:将字符串从0开始截取num个长度

© 著作权归作者所有

共有 人打赏支持
z
粉丝 0
博文 24
码字总数 15955
作品 0
淮南
程序员
从0到1学习网络安全 【Web安全入门篇-上传漏洞】

简介 这个漏洞在DVBBS6.0时代被黑客们利用的最为猖獗,利用上传漏洞可以直接得到WEBSHELL,危害等级超级高,现在的入侵中上传漏洞也是常见的漏洞。 导致该漏洞的原因在于代码作者没有对访客提...

ihacker
05/23
0
0
PHP之微信JSSDK图片上传预览下载到服务器

1.投票报名 主要实现报名功能 (1)form表单布局 3.微信JSSDK图片上传功能 3.1 jssdk.php jsapiticket.php accesstoken.php 放在项目文件下 3.2获取wx.config所需要的信息 页面中添加如下代码...

bengozhong
2016/11/03
1K
0
PHP.INI配置:文件上传功能配置教程

昨天分享了在PHP网站开发中如何在php.ini中配置实现session功能的PHP教程,今天继续分享在利用PHP实现文件上传功能时几点关键php.ini的配置。   说到在php.ini中的文件上传的配置,其实在之...

张志浩
2012/10/08
0
0
从0到1学习网络安全 【Web安全入门篇-文件包含漏洞】

概述 程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某个函数时,直接调用此文件,无需再次编写,这种调用文件的过程一般被称为包含。 程序开发人员都希望代码更加灵活,所以通...

i_China
05/28
0
0
08-05更新ThinkPHP+swfupload多图上传实例 经典实用的php多图上传

先上一张图片给大家看看效果,有需要就下载学习。不一定非要在ThinkPHP里,只是我非常喜欢去用ThinkPHP做开发了。 好了。现在咱们需要的东西是,下载一个swfupload.js网上很多,自己百度吧....

3147972
2014/03/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
0
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
5
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
4
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
31
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部