第一步,创建上传文件的html页面——upload.html:
<form action="upload_file.php" method="post" enctype="multipart/form-data"> <label for="file">Filename:</label> <input type="file" name="file" id="file" /> <br /> <input type="submit" name="submit" value="Submit" /> </form>注意:
上传文件,form的enctype="multipart/form-data"属性必须写上。
<input>标签的 type="file" 属性为上传文件控件。
第二部,创建上传文件处理脚本——upload_file.php,限制上传文件的类型,保存文件到upload.php:
if ($_FILES["file"]["error"] > 0){ ?>
<?php /* 通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件。 第一个参数是表单的 input name,第二个下标可以是 "name", "type", "size", "tmp_name" 或"error"。就像这样: · $_FILES["file"]["name"] - 被上传文件的名称 · $_FILES["file"]["type"] - 被上传文件的类型 · $_FILES["file"]["size"] - 被上传文件的大小,以字节计 · $_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称 · $_FILES["file"]["error"] - 由文件上传导致的错误代码 */ /* 下面的代码对上传的文件进行类型和大小的判断,限制用户只能上传尺寸小于2M的图片。 注意:jpeg和pjpeg是火狐和IE对jpg的不同“理解”。对于 IE,识别 jpg 文件的类型必须是 pjpeg,对于 FireFox,必须是 jpeg。 */ if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000)) { if ($_FILES["file"]["error"] > 0) { echo "上传发生错误: " . $_FILES["file"]["error"] . "<br />"; } else { /* 输出上传文件的信息。 */ echo "文件上传成功!<br>"; echo "文件名: " . $_FILES["file"]["name"] . "<br />"; echo "类型: " . $_FILES["file"]["type"] . "<br />"; echo "大小: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "文件缓存地址: " . $_FILES["file"]["tmp_name"] . "<br />"; /* 判断上传文件是否已经存在,存在就输出提示,不存在就从缓存中复制到upload。 注:PHP 临时文件夹创建了一个被上传文件的临时副本。这个临时的复制文件会在脚本结束时消失。要保存被上传的文件,我们需要把它拷贝到另外的位置: */ if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . "已经存在!"; } else { /* 用move_uploaded_file()函数移动上传的文件到upload文件夹 */ move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "文件存储成功,保存在: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "文件上传失败!"; } ?>