<!-- /* 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;} -->
本讲知识点
2 、 $_FILES 系统函数
3 、 move_uploaded_file 函数
4 、 is_uploaded_file 函数
表单中 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'] 该文件上传相关的错误代码。
2; 超过了文件大小
MAX_FILE_SIZE 选项指定的值。
@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
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
$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] 举报,一经查实,本站将立刻删除。