微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ddd

<!-- /* Font DeFinitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:Simsun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style DeFinitions */ p.Msonormal,li.Msonormal,div.Msonormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page DeFinitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.Section1 {page:Section1;} -->

本讲知识点

1 FORM 标签 enctype 属性

2 $_FILES 系统函数

3 move_uploaded_file 函数

4 is_uploaded_file 函数

 

1 FORM 标签 enctype 属性

       表单中 enctype="multipart/form-data" 的意思,是设置表单的 MIME 编码。认情况,

这个编码格式是 application/x-www-form-urlencoded 才能完整的传递文件数据

,不能用于文件上传

只有使用了 multipart/form-data ,因为浏览器不能传递二进制代码

 

<form enctype="multipart/form-data" method="post" name="upform">

 

2 $_FILES 系统函数

       $_FILES['myFile']['name']   客户端文件的原名称

$_FILES['myFile']['type']   文件 MIME 类型,例如 "image/gif"

                         image/jpg

image/jpeg

image/png

image/pjpeg

image/gif

image/bmp

image/x-png

application/x-zip-compressed

$_FILES['myFile']['size']   上传文件的大小,单位为字节。

$_FILES['myFile']['tmp_name']   储存的临时文件名,一般是系统认。

$_FILES['myFile']['error']   文件上传相关的错误代码

                         0; 文件上传成功。

1; 超过了文件大小 PHP.ini

2; 超过了文件大小

                            MAX_FILE_SIZE 选项指定的值。

3; 文件只有部分被上传

4; 没有文件上传

5; 上传文件大小为 0

@H_23_502@3 @H_23_502@move_uploaded_file 函数上传后移动文件到目标位置的函数

      格式: move_uploaded_file( 临时文件,目标位置和文件 );

 

@H_23_502@4 @H_23_502@is_uploaded_file 函数(判断上传 @H_23_502@MIME 类型的文件函数

@H_23_502@      格式: move_uploaded_file(MIME);

判断是否为 post 传值

@H_23_502

 

 

实例演示:

<?PHP

 

if (is_uploaded_file($_FILES['upfile']['tmp_name'])){// 判断是否有文件上传

 

$upfile=$_FILES["upfile"];// 将系统变量重新赋值,使用方便。 注意 upfile 为控件的 name

$name = $upfile["name"];

$type = $upfile["type"];

$size = $upfile["size"];

$tmp_name = $upfile["tmp_name"];

 

if (move_uploaded_file($tmp_name,'up/'.$name)) {// 移动文件函数 $tmp_name 为临时文件名称 'up/'.$name 为目标位置 @H_23_502@up 文件夹为此 @H_23_502@PHP 代码统计目录

       echo " 上传成功 ";

      }

}

?>

<form  action="" enctype="multipart/form-data" method="post" name="up">

上传文件

<input type="file" name="upfile" />

<input type="submit"  value=" 上传 "/>

 

</form>

                                         代码详细位置: D:/website/training/shangchuan

老师的 PHP 代码解析:

  <?PHP

require('config.PHP');/ / 连接数据库、打开数据库

if($_POST['submit']){ // 判断是否点击了 submit 按钮,若点击则执行括号内的代码

       $oldName = $_FILES['fileDoc']['name']; / / 获取上传文件的原始名字

       //echo $oldName;

       $tmp = explode('.',$oldName); / /explode 函数

       $docName = time().".".$tmp[1]; / / 设置新的文件名为当前时间与 1970 年的秒差 . 格式 $tmp[1] 在这里的作用是取得文件的格式

       $filepath = "upload/".$docName; / / 设置上传的路径(目的地)

       if(is_uploaded_file($_FILES['fileDoc']['tmp_name'])){ / / 判断是否有文件上传

       if (move_uploaded_file($_FILES['fileDoc']['tmp_name'],$filepath)) / / 判断是文件是否移动成功

                echo "suc";

          else 

echo "failure";

       }

       $sql = "insert into `up` values('','".$oldName."','".$docName."')";/ / 数据库中插入文件的原始名及新名字

       $query = MysqL_query($sql); / / 执行 sql 语句

       if($query>0) / / 判断是否执行成功

      echo "Suc";

    else

      echo "Failure";

       echo "<script language='javascript'>setTimeout(/"window.location='dis.PHP'/",1000)</script>";/ /javascript 跳转

}

?>

<form action="<?echo $PHP_SELF?>" method="post" enctype="multipart/form-data">

<input type="file" name="fileDoc">

<br>

<input type="submit" name="submit" value=" 上传 ">

</form>

显示图片页面

<?PHP

require('config.PHP');

$sql = "select * from `up` order by `id` DESC";

$rs = MysqL_fetch_array(MysqL_query($sql)); // 查询最新插入的图片

 

?>

<img src="upload/<?echo $rs['docName']?>" />

<?echo $rs['oldName']?>

 

括理解上传 file form 中,点击 submit 时将数据放进缓存中,然后判断是否 post 传值,将上传文件移至定义的文件夹中,同时将文件新的名字和旧的名字插入数据库

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐