php文件上传三要素,php文件上传总结

前言:

学习php中

1.表单代码:

文件上传

文件上传

2。PHP代码

$gsx=array("jpg","gif","txt");

$irs=explode(".",$_FILES['file']['name']);

$sx=end($irs);

if (($_FILES['file']['size'] < 2000000) && (in_array($sx,$gsx)))

{

if ($_FILES['file']['error'] > 0)

{

echo "错误:".$_FILES['file']['error'];

}

else

{

if file_exists("upload",$_FILES['file']['name']);

{

echo "文件已存在";

}

else

{

echo "文件类型:".$_FILES['file']['type']."
";

echo "文件字节:".$_FILES['file']['size']."
";

echo "文件名:".$_FILES['file']['name']."
";

echo "上传目录:upload/";

}

}

}

else

{

echo "非法文件格式!";

}

?>

笔记:

上传表单:

文件上传

文件上传

file用于文件上传 enctype用于提交表单时用于什么内容类型(multipart/form-data)

上传的代码:

function fisle()

{

if($_FILES['file']['error']>0)

{

echo "错误:".$_FILES['file']['error']."
";

}

else

{

echo "上传文件名:".$_FILES['file']['name']."
";

echo "上传文件类型:".$_FILES['file']['type']."
";

echo "文件大小:".$_FILES['file']['size']."
";

echo "储存位置:".$_FILES['file']['tmp_name'];

}

}

fisle();

?>

通过PHP的FILES向服务器传文件

$_FILES['file']['type'] type获取文件上传类型

$_FILES['file']['error'] file 第一个是表单的参数 error是上传报错

$_FILES['file']['name'] name上传文件名称

$_FILES['file']['size'] size是上传的总字节

$_FILES['file']['tmp_name'] 上传文件存放目录

自定义上传目录:

test

|-----upload # 文件上传的目录

|-----form.html # 表单文件

|-----upload_file.php # php 上传代码

php文件上传总结

如果只是直接判断上传php文件的时候没有

出错的时候就会造成安全问题

所以我们要进行白名单限制

$allowed=array('gif','jpg','png');

$temp=explode(".",$_FILES['file']['name']);

echo "上传字节数:".$_FILES['file']['size'];

echo "
";

$extesion=end($temp);

if (($_FILES['file']['type']=="image/gif") || ($_FILES['file']['type']=="image/jpeg") || ($_FILES['file']['type']=="image/jpg") || ($_FILES['file']['type']=="image/pjeg") || ($_FILES['files']['type']=="image/x-png") || ($_FILES['file']['type']=="image/png") && ($_FILES['file']['size'] < 2048000) && in_array($extesion,$allowed))

{

if ($_FILES['file']['error'] > 0)

{

echo "出错:".$_FILES['file']['error']."
";

}

else

{

echo "

echo "

";

echo "

"."上传文件名:".$_FILES['file']['error'].""."
";

echo "

"."上传文件类型:".$_FILES['file']['type'].""."
";

echo "

";

echo "

";

}

if (file_exists("upload/".$_FILES['file']['name']))

{

echo '文件已存在';

}

else

{

move_uploaded_file($_FILES['file']['tmp_name'],"upload/".$_FILES['file']['name']);

echo "
";

echo "

echo "

";

echo "

"."上传文件路径:"."upload/".$_FILES['file']['tmp_name'].""."
";

echo "

";

echo "

";

}

}

else

{

echo '非法文件格式!!!';

}

?>

file_exists("文件路径",'$_FILES['file']['name']') 用于判断文件是否存在

move_uploaded_file(指定文件,"目录") 用于指定保存目录

acb570a5bbfed40d15b7814903ef38dc.png

ea1f564cbbd124e2f323910a0a35de6e.png

jquery&period;uploadify文件上传组件

1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ...

11、Struts2 的文件上传和下载

文件上传 表单准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设置 ...

Java FtpClient 实现文件上传服务

一.Ubuntu 安装 Vsftpd 服务 1.安装 sudo apt-get install vsftpd 2.添加用户(uftp) sudo useradd -d /home/uftp -s /b ...

小兔Java教程 - 三分钟学会Java文件上传

今天群里正好有人问起了Java文件上传的事情,本来这是Java里面的知识点,而我目前最主要的精力还是放在了JS的部分.不过反正也不麻烦,我就专门开一贴来聊聊Java文件上传的基本实现方法吧. 话不多说 ...

&comma;net core mvc 文件上传

工作用到文件上传的功能,在这个分享下 ~~ Controller: public class PictureController : Controller { private IHostingEnvi ...

Web开发安全之文件上传安全

很长一段时间像我这种菜鸡搞一个网站第一时间反应就是找上传,找上传.借此机会把文件上传的安全问题总结一下. 首先看一下DVWA给出的Impossible级别的完整代码: <?php if( iss ...

AutoIt实现Webdriver自动化测试文件上传

在运用WebDriver进行自动化测试时,由于WebDriver自身的限制,对于上传文件时Windows弹出的文件选择窗口无法控制,通过在网上查找资料锁定使用AutoIt来控制文件上传窗口. Auto ...

Struts的文件上传下载

Struts的文件上传下载 1.文件上传 Struts2的文件上传也是使用fileUpload的组件,这个组默认是集合在框架里面的.且是使用拦截器:

&period;JavaWeb文件上传和FileUpload组件使用

.JavaWeb文件上传 1.自定义上传 文件上传时的表单设计要符合文件提交的方式: 1.提交方式:post 2.表单中有文件上传的表单项:

js调试工具console详解

#console基本输出方法,占位符:字符(%s).整数(%d).浮点数(%f)和对象(%o) console.log('日志'); console.info('信息'); console.error ...

Spring Boot 2&period;0正式发布,新特性解读

作者|翟永超 Spring Boot 2.0 来啦,有哪些新特性?升级吗? 写在前面 北京时间 3 月 1 日,经过漫长的等待之后,Spring Boot 2.0 正式发布.作为 Spring 生态中 ...

2018 年终总结 &amp&semi; 2019 年度计划

坎坷的今年,茫然的明年 <2017 年终总结 & 2018 年度计划> 2018 年度计划完成情况: 1.健身时间不少于350天:  未完成 借口很多,但结果就一个——懒   2. ...

在 子 iframe中 点击一个按钮&comma; 变换 这个 iframe的地址url&period;

//跳到测试结果: function jump() { console.log(self.parent.document.getElementById("iframe").src) ...

Merkle Tree 概念

Merkle Tree 概念 来源 https://www.cnblogs.com/fengzhiwu/p/5524324.html /*最近在看Ethereum,其中一个重要的概念是Merkle T ...

I&period;MX6 PHY fixup 调用流程 hacking

/********************************************************************************** * I.MX6 PHY fixu ...

react&period;js学习之路一

今天新老大来了,我们要学习他使用的框架react.js,现在是两眼一抹黑,对于我这个前端菜鸟来说,是真正的重新开始,好了,不说那么多了,开始随便记录我的学习,之后再整理内容. (1)对于react来说 ...

1&period;3(Mybatis学习笔记)动态SQL

一. 使用可以根据具体情况来拼接SQL语句,使其更加灵活更加适应我们的需求. 的标签体中是需要拼接的语句,满足条件才会将其进行拼接. &lt ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值