只有此编码类型(enctype=“multipart/form-data”)才能传文件,并且还要使用post上传方式。
1)首先,form表示的编码类型要修改:
<form enctype="multipart/form-data" action="h143.php" method="post">
(注意:form表单的默认编码类型为:application/x-www-form-urlencoded)
2)当编码类型为默认类型时,不能上传文件内容,只能上传文件名。
3)综合1)和2),可以按以下参数上传文件。
<form enctype="multipart/form-data" action="h143.php" method="post">
<input name="zp" type="file">
<input type="submit" value="提交">
</form>
4)用文件域上传到服务器上的文件都放在全局数组$_FILES[]中。可以用以下PHP代码取现上传的文件内容:
<?php
if(!is_dir("./upfile")){ //判断服务器中在网页文件目录下是否存在文件夹upfile,“./”表示当前目录。
mkdir("./upfile"); //如果不存在,则创建文件夹
}
$path="upfile/".$_FILES["zp"]["name"];
//定义上传文件存储位置
move_uploaded_file($_FILES["zp"]["tmp_name"],$path);
//move_uploaded_file()函数把保存在其他目录下的临时文件移动到$path变量指定的位置,并以指定的文件名保存。 tmp_name元素中保存了临时文件名。
?>
<img src="upfile\<?php echo $_FILES["zp"]["name"]?>">
- 多文件上传
<?php
if (!is_dir("../../../images")) { //判断服务器中在网页文件目录下是否存在文件夹upfile,“./”表示当前目录。
mkdir("../../../images"); //如果不存在,则创建文件夹
}
/*循环上传*/
for ($i = 0; $i < count($_FILES['zp']['tmp_name']); $i++) {
//定义上传文件存储位置
$path = "../../../images/" . $_FILES["zp"]["name"][$i];
//move_uploaded_file()函数把保存在其他目录下的临时文件移动到$path变量指定的位置,并以指定的文件名保存。 tmp_name元素中保存了临时文件名
move_uploaded_file($_FILES['zp']['tmp_name'][$i], $path);
}
?>