(php)form&文件上传

9月23日课堂要点小记:

1.浏览器提交数据的 本质是基于http协议;

2.任何一个表单(form)提交数据:必须要有name属性;以及submit;
3.接收到的数据,在php中以键值对数组形式存在;
4.$_get 和 $_post 是超全局预定义变量,区分大小写;
5.$_request可以不区分get和post数据,不用它代替是因为它会合并数据,用array_merge形式,会把前面同键名数据覆盖掉;不安全;
6.复选框提交数据时 value值唯一;影响传递的数组;(会将前面的值覆盖)所以需要在value值后加【】,php识别会转成添加数组元素,把本来应该形成的一维数组变成二维数组;
7.复选框 要用到 inplode explode in_array checked;
7.1复选框中用checked设置让用户看到已选;需<?php echo in_array('',$)?"checked='checked':''">如果为真,则执行checke。否则‘’;
8.post接收的是字符串类型。。file要用$_files接收;;
9.GET一般用来查询数据,不影响服务器已经存在的数据;POST传递的数据用来修改数据;
10.凡是get提交的数据不能修改服务器内容;post可以;
11.文件上传有五个要素:name type tmp_name error size;
12.上传成功返回0;只会在服务器的temp停留,要保存就用move_uploaded_file  或者copy();
13.错误有6种,0是正确,1文件超过允许大小2超过表单允许大小;3只有部分上传成功;4没有选中要上传的文件;7服务器错误
14.&引用传值可以和return配合使用,functionfunc(&$x){ $x return};可以返回错误;


<!--上传文件的form表单-->

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
 </head>
 <body>
<form action="upload2.php" method="post" enctype="multipart/form-data">
<input type="file" name="myfile"/>
<input type="submit" value="ok"/>
</form>
 </body>
</html>

/*接收文件的php*/

<?php
include_once('upload_2.php');
$file = $_FILES['myfile'];
$allow = array("image/jpg","image/jpeg");
$filename = func($file,"uploads",$allow,$error);
    if($filename){
echo $filename;
}else{
echo $error;
}
/*将上传文件的php封装成function*/

<?php
function func($file,$path,$allow,&$error,$maxsize=1000000){
if(!is_array($file) || count($file)!=5){
$error = "这不是一个文件";
return false;
}
switch($file['error']){
case 1:
$error = "错误情况一";
return false;
case 2:
$error = "错误情况二";
return false;
case 3:
$error = "错误情况三";
return false;
case 4:
$error = "错误情况四";
return false;
case 6:
case 7:
$error = "错误情况六七";
return false;
}
if($file['size']>$maxsize){
$error = "文件过大";
return false;
}
$filename = func2($file['name']);
if(move_uploaded_file($file['tmp_name'],"uploads/"."/".$filename)){
return $filename;
}else{
$error = "error";
return $error;
}
}
function func2($filename){
$name = date('ymdhis');
$abc = "abcdefghijklmnopqrstuvwxyz";
for($i=0;$i<6;$i++){
$name.=$abc[rand(0,strlen($abc)-1)];
}
return $name.strrchr($filename,'.');
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值