PHP上传文件代码之入门代码
发布:smiling 来源: PHP粉丝网 添加日期:2014-02-27 13:13:18 浏览: 评论:0
在php中文件上传我们都是利用表单的post来实例了,注意:标签的 enctype 属性规定了在提交表单时要使用哪种内容类型.在表单需要二进制数据时,比如文件内容,请使用 \"multipart/form-data\"
这是一种非常简单文件上传方式.基于安全方面的考虑,您应当增加有关什么用户有权上传文件的限制.
实例代码如下:
- <!DOCTYPE html>
 - <html>
 - <head>
 - <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 - <meta http-equiv="Content-Language" content="zh-cn" />
 - </head>
 - <body>
 - <form action="/upload.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>
 - <?php
 - if($_POST){
 - if ( $_FILES["file"]["size"] < 2000000 )
 - {
 - if ($_FILES["file"]["error"] > 0)
 - {
 - echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
 - }
 - else
 - {
 - echo "Upload: " . $_FILES["file"]["name"] . "<br />";
 - echo "Type: " . $_FILES["file"]["type"] . "<br />";
 - echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
 - echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
 - if (file_exists("upload/" . $_FILES["file"]["name"]))
 - {
 - echo $_FILES["file"]["name"] . " already exists. ";
 - }
 - else
 - {
 - move_uploaded_file($_FILES["file"]["tmp_name"],
 - "upload/" . $_FILES["file"]["name"]);
 - echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
 - }
 - }
 - }
 - else
 - {
 - echo "Invalid file";
 - }
 - }
 - ?>
 - </body>
 - </html>
 
第一个参数是表单的 input name,第二个下标可以是 "name", "type", "size", "tmp_name" 或 "error".就像这样:
$_FILES["file"]["name"] - 被上传文件的名称
$_FILES["file"]["type"] - 被上传文件的类型
$_FILES["file"]["size"] - 被上传文件的大小,以字节计
$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] - 由文件上传导致的错误代码
首先是上传的提交页面upfile.html
实例代码如下:
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 - <form action="upload.php" enctype="multipart/form-data" method="POST">
 - <input type="hidden" name="max_file_size" value="33554432">
 - <input type="file" name="file">
 - <input type="submit" name="submit" value="上传" />
 - </form>
 
1. PHP支持HTML以POST的方法传输文件,但是form中必须声明enctype的属性="multipart/form-data",否则整个form表单将不起任何作用.
2. form表单中必须含有一个name为MAX_FILE_SIZE的隐藏域,这个隐藏域用来指定用户最大能上传的文件大小,必须声明在所有其他input标签之前.如果文件超大的话,浏览器直接就可以给出提示,不必浪费上传的时间.
下面就是上传处理文件upload.ph,实例代码如下:
- <?php
 - /* 设定上传目录 */
 - $dest_dir='uploads';
 - /* 检测上传目录是否存在 */
 - if( !is_dir($dest_dir) || !is_writeable($dest_dir) )
 - {
 - die("上传目录 ".$dest_dir." 不存在或无法写入");
 - }
 - /* 设置允许上传文件的类型 */
 - $type=array("rar","zip","txt","c");
 - /* 获取上传文件信息 */
 - $upfile=&$HTTP_POST_FILES['file'];
 - /* 获取文件后缀名函数 */
 - function fileext($filename)
 - {
 - return substr(strrchr($filename, '.'), 1);
 - }
 - /* 判断上传文件类型 */
 - if( !in_array( strtolower( fileext($upfile['name'] ) ),$type) )
 - {
 - $text=implode(",",$type);
 - echo "对不起,您只能上传以下类型文件: ",$text,"<br>";
 - }
 - else
 - {
 - /* 设置文件名为"日期_文件名" */
 - $dest=$dest_dir.'/'.date("ymdHis")."_".$upfile['name'];
 - /* 移动上传文件到指定文件夹 */
 - $state=move_uploaded_file($upfile['tmp_name'],$dest);
 - if ($state)
 - {
 - print("文件上传成功!<br>");
 - print("文件名:".$dest."<br>");
 - print("上传的文件大小:".( round($upfile['size'] / 1024,2) )." KB<br>");
 - }
 - else
 - {
 - /* 处理错误信息 */
 - switch($upfile['error'])
 - {
 - case 1 : die("上传文件大小超出 php.ini:upload_max_filesize 限制<br>");
 - case 2 : die("上传文件大小超出 MAX_FILE_SIZE 限制<br>");
 - case 3 : die("文件仅被部分上传<br>");
 - case 4 : die("没有文件被上传<br>");
 - case 5 : die("找不到临时文件夹<br>");
 - case 6 : die("文件写入失败<br>");
 - }
 - }
 - }
 - ?>
 
Tags: 上传文件 代码 入门
相关文章
- ·php utf8编码上传中文文件名出现乱码(2013-11-14)
 - ·php中检测上传文件类型与上传图片大小代码(2013-11-14)
 - ·CKEditor+CKFinder+php上传文件配置方法(2013-12-02)
 - ·php上传文件与图片重命名方法总结(2014-01-06)
 - ·如何设置PHP上传文件大小限制(2014-01-06)
 - ·ckeditor上传文件重命名并加水印配置方法(2014-01-07)
 - ·php获取上传文件名的文件类型(2014-01-15)
 - ·PHP上传文件示例程序代码(适合初学者)(2014-07-17)
 - ·php上传文件代码实例(2014-08-18)
 - ·php验证上传文件类型(2014-08-25)
 - ·PHP Ajax上传文件实例,ajaxfileupload.js(2014-08-27)
 - ·一个PHP无刷新上传文件程序代码(2014-08-27)
 - ·php中检测上传文件类型与上传图片大小代码(2014-09-02)
 - ·PHP通过FTP上传文件详解介绍(2014-09-14)
 - ·深入分析PHP上传文件的案例(适合初学者)(2015-04-08)
 - ·PHP上传文件时如何自动分配的路径(2015-04-09)
 
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
 - PHP新手上路(一)(7)
 - 惹恼程序员的十件事(5)
 - PHP邮件发送例子,已测试成功(5)
 - 致初学者:PHP比ASP优秀的七个理由(4)
 - PHP会被淘汰吗?(4)
 - PHP新手上路(四)(4)
 - 如何去学习PHP?(2)
 - 简单入门级php分页代码(2)
 - php中邮箱email 电话等格式的验证(2)
 
