php表单 菜鸟,php菜鸟学习之路——表单验证
表单中enctype=”multipart/form-data”的意思,是设置表单的MIME编码。默认情况,这个编码格式是 application/x-www-form-urlencoded,不能
1.form 中Enctype=multipart/form-data 的作用 表单中enctype=”multipart/form-data”的意思,是设置表单的MIME编码。默认情况,这个编码格式是 application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整 的传递文件数据,进行下面的操作.enctype=”multipart/form-data”是上传二进制数据; form里面的input的值以2进制的方式传过去。 2.include和require的区别 require 的英文意思是 需要,依赖于。如果使用了这条语句,也就是告诉PHP内核,我这个程序需要这个文件,依赖于这个文件。所以,PHP如果发现require参数中的文件不 存在的话,就会报fatal error,并且停止执行下面的语句。include 的英文意思是 包括,包含。如果使用了这条语句PHP表单验证,也就是告诉PHP内核,程序执行时,把这个文件包含进来。所以,PHP如果找不到的话,仅仅会提示找不到它。而不会停止 下面脚本的执行。 3.$_FILES的用法 $_FILES超级全局变量很特殊,他是预定义超级全局数组中唯一的二维数组。其作用是存储各种与上传文件有关的信息。此函数中总共有5项: 1.$_FILES[“userfile”][“error”]$_FILES[“userfile”][“error”]数组值提供了与上传尝试结果有关的重要信息。总共有5个不同的返回值,其中一个表示成功的结果,另外4个表示在尝试中出现的特殊错误。 值:0; 没有错误发生,文件上传成功。 UPLOAD_ERR_INI_SIZE 值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 UPLOAD_ERR_FORM_SIZE 值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 UPLOAD_ERR_PARTIAL 值:3; 文件只有部分被上传。 UPLOAD_ERR_NO_FILE 值:4; 没有文件被上传。 值:5; 上传文件大小为0. 2.$_FILES[“userfile”][“name”] $_FILES[“userfile”][“name”]变量指定客户端机器上声明的文件最初的名字,包括扩展名。 3.$_FILES[“userfile”][“size”] $_FILES[“userfile”][“size”]变量指定从客户端上传的文件的大小,以字节为单位。 4. $_FILES[“userfile”][“tmp_name”] $_FILES[“userfile”][“tmp_name”]变量指定上传到服务器后为文件赋予的临时名。这是存储在临时目录(由PHP指令upload_tmp_dir指定)中时所指定的文件名。 5. $_FILES[“userfile”][“type”] $_FILES[“userfile”][“type”]变量指定从客户端上传的文件的mime类型。因此,在example.jpg文件 的例子中,此变量会赋值为image/jpeg。如果上传的是PDF,则赋值为application/pdf。因为这个变量有时会得到意外的结果,所以 应当在脚本中显示地进行验证。 protected function uploadfile($attachment, $path = 'web/uploadfile/') { $myData = array('flag'=>0); //允许上传的文件格式 $tp = array("image/gif","image/jpeg","image/jpg","image/png"); //检查上传文件是否在允许上传的类型 if(!in_array($attachment["type"],$tp)){ $myData['msg'] = '请上传图片jpg, jpeg, png格式的文件'; return $myData; // $this->showMessage($myData['msg'], HTTP_REFERER); // return $myData; } $filetype = $attachment['type']; if($filetype == 'image/jpeg'){ $type = '.jpeg'; } if ($filetype == 'image/jpg') { $type = '.jpg'; } if ($filetype == 'image/png') { $type = '.png'; } if($filetype == 'image/gif'){ $type = '.gif'; } $today= date("YmdHis"). '_'.uniqid(); //获取时间并赋值给变量 $file2 = $path . $today . $type; //图片的完整路径 $img = $today . $type; //图片名称 $result = move_uploaded_file($attachment["tmp_name"], $file2); if( $result ) { $myData['flag'] = 1; $myData['filename'] = $img; // $filename = $img; } else { $myData['msg'] = '上传失败'; } return $myData; } 4.同名name的传值 前台html代码: 后台取值 $data = $_POST['id']; var_dump($data); 这样就可以取出input的3个值。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |