PHP从零单排(四)PHP中的文件上传处理

来源:互联网 发布:安卓6.0 数据开关 编辑:程序博客网 时间:2024/05/17 03:43

    在WEB开发中,经常会遇到从客户端上传文件到服务器端的问题。通常,文件上传使用的是HTTP的POST方式,使用POST方式传递文件到服务器端。要完成文件上传处理,首先要定义HTML表单的enctype属性为"multipart/form-data",如以下代码所示。

<form enctype="multipart/form-data" action="somefile.php" method="POST">

    只有这样的表单,才能确保文件可以提交并上传。其中,somefile.php要替换为一个可以处理文件上传的真实PHP文件。

<html><head><title>3-6</title></head><body><form enctype="multipart/form-data" action="3-7.php" method="POST">upload<input name="myfile" type="file" /><input type="submit" value="Submit" /></form></body></html>

    在PHP程序中,使用全局变量$_FILES处理文件上传。$_FILES是一个数组,包含了要上传的文件的信息。相关数组的内容:

$_FILES['myfile']['name']表示客户端文件的原始名称,即要上传的文件的文件名。其中myfile就是在上述代码中定义的input元素的name 属性的值:<input name="myfile" type="file" />

$_FILES['myfile']['type']表示上传文件的类型。

$_FILES['myfile']['size']表示已上传文件的大小,单位为字节。

$_FILES['myfile']['tmp_name']表示文件上传后,在服务器端存储的临时文件名。

$_FILES['myfile']["error"]表示和文件上传的相关错误信息。

    文件提交后,一般会被存储到服务器的默认临时目录中,可以通过修改php.ini中的upload_tmp_dir项,修改为其他路径。使用函数move_uploaded_file()将上传的文件移到指定的目录下。该函数的原型如下所示。第一个参数filename指合法的上传文件,第二个参数destination是移动后的目标文件。如果上传的文件不合法,或由于某种原因无法移动文件。该函数的原型如下所示。第一个参数filename指合法的上传文件,第二个参数destination是移动后得目标文件。如果上传文件不合法,或由于某种原因无法移动文件,该函数会返回FALSE。

move_uploaded_file(filename,destination)

<?php $upload_path=$_SERVER['DOCUMENT_ROOT']."/upload/"; $dest_file=$upload_path.basename($_FILES['myfile']['name']); if(move_uploaded_file($_FILES['myfile']['tmp_name'],$dest_file)) { echo "文件已上传至服务器根目录的upload目录下"; } else { echo "文件上传时发生了一个错误".$_FILES['myfile']['error']; }?>



0 0
原创粉丝点击