`
qimo601
  • 浏览: 3439346 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

5步详解PHP文件上传功能的实现

阅读更多

1、表单部分
允许用户上传文件,在HTML表单的声明中要加上一个上传的属性:
enctype = 'multipart/form-data'
表单的method必须是POST
表单选项MAX_FILE_SIZE隐藏域用于限制上传文件大小,它必须放在文件表单元素前面,单位为字节。
如:
<form enctype='multipart/form-data' id='aa' name='aaa' method='post' action='xxx.php'>
<input type='hidden' name='MAX_FILE_SIZE' value='2621114' />
<input name='upload_file' type='file' />
</form>

2、处理上传文件
上传时,PHP收到关于该文件的信息数组,这些信息可以在$_FILES这个超级全局数组中找到。
如:如果表单中的文件输入框名字为upload_file,那么关于该文件的所有信息都包含在数组$_FILES['upload_file']里面。
如:客户上传了一个“aaa.jpg”的图片数组值如下:
name "p5pp.jpg" 上传时文件的名字
type “image/jpeg" 文件类型
tmp_name "/tmp/phpjksdf" 服务器端的临时文件名
error 上传错误的返回值
size 2045 文件实际大小

上面数组里面的error会返回不同的常量值,如下:
UPLOAD_ERR_OK 没有错误发生,文件上传成功
UPLOAD_ERR_INI_SIZE 文件大小超过了PHP.INI中upload_max_filesize选项限制的值
UPLOAD_ERR_FORM_SIZE 上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项值。可在程序中检查表单$FILES ['up_file']['size']来处理
UPLOAD_ERR_PARTIAL 文件只有部分被上传
UPLOAD_ERR_NO_FILE 用户没有提供任何文件上传
上传后处理的具体例子:
if(!move_uploaded_file($_FILES['f']['tmp_name'],"uploads/".$_FILES['f']['name'].".jpg")){
echo "error";
}

函数:
move_uploaded_file 移动上传的临时文件到指定的目录下
例子:
move_uploaded_file('临时文件名','指定文件路径')
is_uploaded_file 判断是否是通过http Post上传的文件
例子:
if(!is_uploaded_file($_FILES['f']['tmp_name'])){
echo '非法';
}

3、相关参数
PHP上传设计到的php.ini中的参数:
file_uploads 是否允许上传文件,默认ON
upload_tmp_dir 上传文件防止的临时目录,未指定则使用系统默认位置
upload_max_filesize 允许上传文件的大小的最大值,默认为2M
post_max_size 控制采用POST方法进行一次表单提交中PHP所能接受的最大数据量,如果希望用PHP文件上传,则此值要改为比upload_max_filesize 要大
max_input_time 以秒为单位对通过POST/GET/PUT方式接受数据时间进行限制。
memory_limit 为了避免正在运行的脚本大量使用系统内存,PHP允许定义内存使用限额。通过设置此参数来制定单个脚本程序可以使用的最大内存容量,应适当大于 post_max_size值
max_execution_time 用来设置在强制终止脚本前PHP等待脚本执行完毕的时间,单位秒。次选项可限制死循环脚本,但当存在一个长时间的合法活动时(如:上传大文件),这项功能也会导致操作失败。这样情况下必须考虑将此变量增加。

4、考虑多文件上传
可以利用$_FILES数组就可以轻松实现多文件上传。$_FILES数组可以获取客户端表单里面所有的file域内容,从而获得所有在同一表单上传的文件。

5、突破上传的内存限制
方法一:
修改php.ini中memory_limit值,改为更大,如 64M
方法二:
使用Apache Rewrite方法,动态修改memory_limit的值。首先建立一个.htaccess文件,保存在上传文件程序的 当前目录即可.代码如下:
php_value memory_limit 100M
php_value post_max_size 30M
php_value upload_max_filesize 30M
php_value max_execution_time 300
php_value max_input_tim 300
php_value display_errors On
——EOF——
看啦上面的文章,希望对你有所收获。
摘自红色黑客联盟(www.7747.net) 原文:http://www.7747.net/kf/201009/73557.html

分享到:
评论

相关推荐

    phpcmsv9单文件上传功能_UTF8_phpcmsv9单文件上传功能_UTF8_piledqq_源码

    《PHPcmsV9单文件上传功能详解》 PHPcmsV9是一款基于PHP+MySQL开发的内容管理系统,它在网站建设和管理中提供了丰富的功能,其中单文件上传功能是其重要的组成部分之一。这一功能允许用户通过Web界面方便地上传各种...

    如何利用PHP实现上传图片功能详解

    通过以上步骤,我们可以实现一个简单的PHP图片上传功能。然而,为了创建一个安全、稳定的文件上传系统,还需要考虑更多的细节和最佳实践。在实际开发中,建议使用现成的框架或库,如Laravel、Symfony等,它们提供了...

    ajaxFileupload实现多文件上传功能

    ## AjaxFileupload实现多文件上传功能详解 AjaxFileupload是一款常用的JavaScript插件,用于实现异步文件上传功能。在Web开发中,多文件上传的需求越来越普遍,尤其是在用户需要一次性上传多个文件时。本篇文章将...

    php文件上传

    ### PHP文件上传详解 在PHP开发中,文件上传是一个常见的需求,尤其是在构建具有文件处理功能的网站或应用程序时。本文将深入探讨“php文件上传”的关键知识点,包括基本原理、实现方式以及示例代码分析。 #### ...

    JS+php后台实现文件上传功能详解

    本文实例讲述了JS+php后台实现文件上传功能。分享给大家供大家参考,具体如下: 一、利用 FormData 对象形式上传 FormData 是 XMLHttpRequest 2 的产物,兼容 IE10+。 FormData 对象,可以把form中所有表单元素的...

    PHP实现的多文件上传类及用法示例

    PHP多文件上传类由多个函数和变量组成,这些函数和变量共同协作,实现了文件上传功能。主要成员变量包括: - `$maxsize`:允许上传的文件大小(以字节为单位)。 - `$allowtype`:允许上传的文件类型数组。 - `$...

    jquery 文件上传资料

    **jQuery 文件上传技术详解** 在Web开发中,文件上传是一个常见的功能,特别是在用户需要提交图片、文档等数据时。...对于开发者而言,理解这些核心概念和技术,能够帮助他们更好地实现高效、友好的文件上传功能。

    PHP文件上传操作实例详解

    ...例如: ... ...&lt;input type="file" name="file"&gt;&lt;/br&gt; ...当表单提交时,浏览器将文件内容封装在一个称为`multipart/form-data`的容器中,并且每个文件都有一...理解这些概念和操作步骤是实现安全、高效文件上传功能的关键。

    PHP基于session.upload_progress 实现文件上传进度显示功能详解

    本文实例讲述了PHP基于session.upload_progress 实现文件上传进度显示功能。分享给大家供大家参考,具体如下: 介绍 session.upload_progress 是PHP5.4的新特征。 当 session.upload_progress.enabled INI 选项开启...

    php文件上传原理与实现方法详解

    以下是对PHP文件上传原理与实现方法的详细解析: 首先,了解文件上传的原理。... ... - `file_uploads`:需设置为`On`,以开启文件上传功能。...正确理解和运用这些知识点,能够实现稳定且安全的文件上传功能。

    PHP实现的文件上传类与用法详解

    总的来说,这个PHP文件上传类提供了一个结构化的解决方案,简化了文件上传的处理过程,确保了上传操作的安全性和可靠性。通过这样的封装,开发者可以更专注于业务逻辑,而无需关心文件上传的底层细节。

    PHP 文件系统详解

    文件上传通常通过表单实现,PHP 提供了专门处理上传文件的全局变量 `$_FILES`。 - **示例**: ```php &lt;form action="upload.php" method="post" enctype="multipart/form-data"&gt; Select file to upload: ...

    ckeditor+ckfinder配置+操作详解,实现上传图片

    CKEditor和CKFinder是两个非常流行的开源Web内容编辑器和文件...通过以上步骤,你可以成功地在你的项目中配置CKEditor和CKFinder,实现用户友好的图片上传功能。这不仅提升了用户体验,也简化了网站后台的内容管理。

    php 实现多文件上传类(txt)

    该类不仅支持单个文件上传,还能够处理多个文件的同时上传,极大地方便了开发者集成文件上传功能。 #### 二、类结构与初始化 `myFrame_Upload` 类继承自 `myFrame` 类,意味着它可能依赖于框架中的其他组件或功能...

    Thinkphp5框架实现图片、音频和视频文件的上传功能详解

    本文实例讲述了Thinkphp5框架实现图片、音频和视频文件的上传功能。分享给大家供大家参考,具体如下: 首先是同步上传,最为基础的上传的方式,点击表单提交之后跳转那种。如下前端代码 &lt;!DOCTYPE html&gt; &lt;...

    ueditor基础功能demo(包含文件上传)

    《ueditor基础功能演示与文件上传详解》 ...通过对ueditor的深入理解和实践,开发者可以轻松构建出满足各种需求的在线编辑环境,尤其在文件上传功能上,ueditor提供了便捷的解决方案,使内容创作变得更加高效。

    jquery图片裁切+PHP文件上传

    《jQuery图片裁切+PHP文件上传技术详解》 在网页应用中,图片处理是一项常见的功能,用户可能需要上传图片并对其进行裁剪以适应特定尺寸的需求。"jQuery图片裁切+PHP文件上传"方案就是解决此类问题的一个高效工具,...

Global site tag (gtag.js) - Google Analytics