PHP5薄荷教程[13]文件上传

  文件上传使用的是POST方式,一个基本的文件上传表单如下:
fileupload.htm
<form enctype="multipart/form-data" action="dealfileupload.php" method="POST">
选择要上传的文件: <input name="userfile" type="file"/>
<input type="submit" value="上传"/>
</form>
  需要注意的是enctype属性的值以及file控件里的name属性,这是用来标识上传的文件的。

  该表单的处理脚本如下:
dealfileupload.php
<?php
$docroot=$_SERVER['DOCUMENT_ROOT'];
$fileupload=$docroot."/upload/".$_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['tmp_name'],$fileupload)){
echo "文件上传成功";
}else{
echo "文件上传失败";
}
?>
  如果上传成功,则文件将被保存到网站根目录下的upload目录中。下面让我们分析一下这段简单的处理脚本。
1、$_FILES数组
  如果file控件里的name属性的值为userfile,则$_FILES['userfile']包含了该上传文件的信息。假定我们上传了名为temp.txt的文件,则:
$_FILES['userfile']['name']="temp.txt" 文件名
$_FILES['userfile']['tmp_name']="c:/tmp1" 完整的临时文件名
$_FILES['userfile']['type']="text/plain" 文件类型
$_FILES['userfile']['size']=1024 文件大小(字节数)
$_FILES['userfile']['error']=0 错误代码,0表示成功

2、bool move_uploaded_file (string filename, string destination)
  该函数专门负责转移上传的文件。filename表示完整的临时文件名,一般是$_FILES['file1']['tmp_name'];destination表示完整的目的文件名,一般使用$_SERVER['DOCUMENT_ROOT']."/upload/".$_FILES['file1']['name']。如果上传成功,则返回1,否则返回0并报错。如果想要隐藏错误提示,可以这样写:@move_uploaded_file(...)

3、如果需要上传多个文件,则可以设置多个file控件,注意name属性要设置为不同。如:
filesupload.htm
<form enctype="multipart/form-data" action="dealfilesupload.php" method="POST">
选择要上传的文件1: <input name="file1" type="file"/>
选择要上传的文件2: <input name="file2" type="file"/>
<input type="submit" value="上传"/>
</form>

dealfilesupload.php
<?php
$docroot=$_SERVER['DOCUMENT_ROOT'];
$file1upload=$docroot."/upload/".$_FILES['file1']['name'];
$file2upload=$docroot."/upload/".$_FILES['file2']['name'];
if (@move_uploaded_file($_FILES['file1']['tmp_name'],$file1upload)){
echo "文件1上传成功";
}else{
echo "文件1上传失败";
}
print "<br/>";
if (@move_uploaded_file($_FILES['file2']['tmp_name'],$file2upload)){
echo "文件2上传成功";
}else{
echo "文件2上传失败";
}
?> 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值