网站导航:首页-网页制作语言-php上传文件

php上传文件

  在制作网页的时候会遇到需要上传文件的情况,上传文件需要HTML代码表单来提交对应的文件,提交到服务器中通过php来处理提交上来的文件。

  1、在写表单代码的时候,需要设置form标签的enctype属性值为multipart/form-data,这是上传文件的必要条件,如果此项设置错误可能会导致上传出现错误。

  2、选择文件的文本框可以利用input标签把type属性设置为file。上传的按钮可以利用input标签type属性的submit值。

  3、文件上传后上传的文件的相关信息会赋给_FILES数组中,这是一个二维数组,第一个参数是上传的文件(即第2步中file的name属性值)。第二个参数是分别有name、size、type、tmp_name和error,它们代表的含义如下:

$_FILES['myFile']['name'] 客户端文件的原名称。
$_FILES['myFile']['type'] 文件的 MIME 类型,例如"image/gif"。
$_FILES['myFile']['size'] 已上传文件的大小,单位为字节。
$_FILES['myFile']['tmp_name'] 储存的临时文件名,一般是系统默认。
$_FILES['myFile']['error'] 该文件上传相关的错误代码。

  返回的错误代码代表的含义如下:

0: 文件上传成功。
1:超过了文件大小php.ini中。
2:超过了文件大小MAX_FILE_SIZE 选项指定的值。
3:文件只有部分被上传。
4:没有文件被上传。
5:上传文件大小为0。

  当文件上传后会首先保存为一个临时文件,最后需要将其重新移动到一个指定的位置。这里需要利用一个函数move_uploaded_file,它的使用格式为move_uploaded_file(临时文件,目标位置和文件名)

  下面针对上传文件举一个例子:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>上传jpg图片测试文档</title>
</head>
<body>
<form action="up.php" method="post" enctype="multipart/form-data" name="upload">
选择文件:<input name="upfile" type="file" />
<input name="sub" type="submit" value="上传" />
</form>
</body>
</html>

<?php
if($_SERVER["REQUEST_METHOD"]=="POST" && isset($_POST["sub"]))
{
$upfile=$_FILES["upfile"];
$error=$upfile["error"];
if($error==0)
{
if($upfile["type"]=="image/jpeg")
{
if(move_uploaded_file($upfile["tmp_name"],"up/".time()."_".$upfile["name"]))
echo "文件上传成功";
}
else
{
echo "只能上传jpg格式";
}
}
else
echo "上传失败";
}
?>

  上述代码中只允许上传JPG文件,并且根据error的结果是否为0判断是否上传成功。上传成功后可以在up文件夹中看到,文件名为“UNIX时间戳_原文件名”。

已经到本页底线啦,您可以:返回目录页|返回首页