PHP上传并读取文件内容 PHP上传TXT文件并读取显示出来
PHP在对文件进行导入的过程中,经常需要结合前端页面,由前端页面提交一份文件,然后由后端的PHP将文件解析成数组,再存入数据库或者进行其他加工,这时候就需要用到PHP的全局变量$_FILES来接收前端$_POST传来数据
首先看看$_FILES的变量的用法
$_FILES超级全局变量很特殊,他是预定义超级全局数组中唯一的二维数组。其作用是存储各种与上传文件有关的信息,这些信息对于通过PHP脚本上传到服务器的文件至关重要。此函数中总共有5项:
1.$_FILES["userfile"]["error"]
$_FILES["userfile"]["error"]数组值提供了与上传尝试结果有关的重要信息。总共有5个不同的返回值,其中一个表示成功的结果,另外4个表示在尝试中出现的特殊错误。灭个返回值的名字和将在后面介绍。
2.$_FILES["userfile"]["name"]
$_FILES["userfile"]["name"]变量指定客户端机器上声明的文件最初的名字,包括扩展名。因此,如果浏览器一个名为vacation.jpg的文件,并通过表单上传,则此变量的值将是vacation.png。
3.$_FILES["userfile"]["size"]
$_FILES["userfile"]["size"]变量指定从客户端上传的文件的大小,以字节为单位。因此,在vacation.jpg文件的例子中,此函数可能赋值为5253,大约为5kb.
4. $_FILES["userfile"]["tmp_name"]
$_FILES["userfile"]["tmp_name"]变量指定上传到服务器后为文件赋予的临时名。这是存储在临时目录(由PHP指令upload_tmp_dir指定)中时所指定的文件名。
5. $_FILES["userfile"]["type"]
$_FILES["userfile"]["type"]变量指定从客户端上传的文件的mime类型。因此,在 vacation.jpg文件的例子中,此变量会赋值为image/jpeg。如果上传的是PDF,则赋值为application/pdf。因为这个变 量有时会得到意外的结果,所以应当在脚本中显示地进行验证。
$_FILES['myFile']['error'] 和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量)
UPLOAD_ERR_OK
值:0; 没有错误发生,文件上传成功。
UPLOAD_ERR_INI_SIZE
值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
UPLOAD_ERR_FORM_SIZE
值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
UPLOAD_ERR_PARTIAL
值:3; 文件只有部分被上传。
UPLOAD_ERR_NO_FILE
值:4; 没有文件被上传。
值:5; 上传文件大小为0.
好了下面我们来看个完整的实例
<html> <head> <meta charset="UTF-8"> </head> <body> <form enctype="multipart/form-data" action="" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="3000000" /> 提交 <input name="userfile" type="file" /> <input type="submit" value="Send File" /> </form> </body> <?php header("Content-type: text/html; charset=utf-8"); echo '$_POST接收:<br/>'; print_r($_FILES); if($_FILES["userfile"]["type"] == "text/plain"){ $fileName = basename($_FILES['userfile']['name']); $tempName = $_FILES['userfile']['tmp_name']; $str=file_get_contents($_FILES['userfile']['tmp_name']); $str = iconv("GB2312", "UTF-8//IGNORE", $str) ; print_r($str); } ?> </html>
- 最新评论