网页应用的上传功能在网络应用开发中已经成为不可或缺的部分,其中PHP和HTML5作为热门的开发语言,也在不断优化上传控件的功能,为开发人员提供更加方便、快捷、安全的上传体验。
一、PHP文件上传
PHP文件上传功能需要了解以下参数:
$_FILES["file"]["name"]:文件名 $_FILES["file"]["type"]:文件类型 $_FILES["file"]["size"]:文件大小 $_FILES["file"]["tmp_name"]:文件上传后的临时文件名 $_FILES["file"]["error"]:上传文件时出现的错误代码
通过设置上传文件路径、文件格式等属性,开发人员可以对上传控件的功能进行限制,例如只允许上传图片格式文件。具体代码如下:
<form action="upload.php" method="post" enctype="multipart/form-data">选择文件:
<input type="submit" name="submit" value="上传" /></form>PHP代码: <?php $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); $extension = end($temp); if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"]< 204800) && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] >0) { echo "错误:" . $_FILES["file"]["error"] . "<br />"; } else { echo "上传文件名: " . $_FILES["file"]["name"] . "<br />"; echo "文件类型: " . $_FILES["file"]["type"] . "<br />"; echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"]; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " 文件已经存在。 "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "文件位置: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "不允许上传非法文件"; } ?>
二、HTML5文件上传
HTML5新增了多个属性,支持更加便捷的文件上传方式。
multiple:选择多个文件 accept:限制文件类型
HTML5的文件上传功能具有如下优点:
1. HTML5支持多文件上传,只需在input标签中设置multiple属性即可支持一次上传多个文件; 2. HTML5还支持拖拽上传功能,用户可以直接将文件拖拽至浏览器中,即可实现上传文件; 3. HTML5还支持限制文件类型功能,限制图片格式、音频格式等;
HTML5的文件上传控件代码如下:
<!DOCTYPE html><html><head><meta charset="utf-8"><title>HTML5 文件上传</title></head><body><form action="upload.php" method="post" enctype="multipart/form-data"><input type="file" name="file" multiple="multiple" accept="image/gif, image/jpeg"/><br><input type="submit" name="submit" value="上传" /></form></body></html>
通过以上两种文件上传方式的介绍,我们可以看到这两种方式虽然代码不同,但是都是一样的上传功能。但是,HTML5文件上传能够通过多选文件来实现批量上传,并且拖拽上传的功能也带来了更便捷的交互。总之,无论是PHP还是HTML5,都为文件上传的控件功能产生了非常大的改进,为用户带来了更加便捷安全的上传体验。