`

php笔记-2文件上传

    博客分类:
  • PHP
阅读更多
<html>
<head>
	<title>php上传文件</title>
</head>
<body>
	<form enctype="multipart/form-data" action="upload.php" method="POST">
		<input type="hidden" name="max_file_size" value="1000000" />
		<center>请选择上传文件:
			<input name="userfile" type="file"/>
			<input type="submit" value="上传"/>
		</center>
	</form>
</body>
</html>

   1. 请注意<form enctype="multipart/form-data"......>这是一个标签,我们要实现文件的上传,必须指定为multipart/form-data,否则服务器将不知道要干什么。
   2. 值得注意的是文件upload.html中表单选项 MAX_FILE_SIZE 的隐藏值域,通过设置其Value(值)可以限制上载文件的大小。
   3. MAX_FILE_SIZE 的值只是对浏览器的一个建议,实际上它可以被简单的绕过。因此不要把对浏览器的限制寄希望于该值。实际上,PHP 设置中的上传文件最大值,是不会失效的。但是最好还是在表单中加上 MAX_FILE_SIZE,因为它可以避免用户在花时间等待上传大文件之后才发现该文件太大了的麻烦。
<?php
	$uploaddir = 'f:/a/';
	$uploadfile = $uploaddir .$_FILES['userfile']['name'];
	print "<pre>";
	if (move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)) {
		print "上传成功\n";
		print_r($_FILES);
	}else {
		print "上传失败了\n";
		print_r($_FILES);
	}
	print "</pre>"
?>

    * $_FILES['userfile']['name'] 客户端机器文件的原名称。
    * $_FILES['userfile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。
    * $_FILES['userfile']['size'] 已上传文件的大小,单位为字节。
    * $_FILES['userfile']['tmp_name'] 文件被上传后在服务端储存的临时文件名。
    * $_FILES['userfile']['error'] 和该文件上传相关的错误代码

   1. 值:0; 没有错误发生,文件上传成功。
   2. 值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
   3. 值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
   4. 值:3; 文件只有部分被上传。
   5. 值:4; 没有文件被上传。

PHP上传文件涉及到的参数
PHP默认的上传限定是最大2M,想上传超过此设定的文件,需要调整PHP、apache等的一些参数. 下面,我们简要介绍一下PHP文件上传涉及到的一些参数:

    * file_uploads

是否允许通过HTTP上传文件的开关,默认为ON即是开

    * upload_tmp_dir

upload_tmp_dir用来说明PHP上传的文件放置的临时目录,要想上传文件,得保证服务器没有关闭临时文件和有对文件夹的写权限,如果未指定则PHP使用系统默认值

    * upload_max_filesize

允许上传文件大小的最大值,默认为2M

    * post_max_size

控制在采用POST方法进行一次表单提交中PHP所能够接收的最大数据量。如果希望使用PHP文件上传功能,则需要将此值改为比upload_max_filesize要大

    * max_input_time

以秒为单位对通过POST、GET以及PUT方式接收数据时间进行限制。如果应用程序所运行环境处在低速链路上,则需要增加此值以适应接收数据所需的更多时间

    * memory_limit

为了避免正在运行的脚本大量使用系统可用内存,PHP允许定义内存使用限额。通过memory_limit变量来指定单个脚本程序可以使用的最大内存容量变量memory_limit的值应当适当大于post_max_size的值

    * max_execution_time

max_execution_time设置了在强制终止脚本前PHP等待脚本执行完毕的时间,此时间以秒计算。当脚本进入了一个无限循环状态时此变量非常有用。然而,当存在一个需要很长时间完成的合法活动时(例如上传大型文件),这项功能也会导致操作失败。在这样的情况下必须考虑将此变量值增加,以避免PHP在脚本正在执行某些重要过程的时候将脚本关闭

    * 对于linux主机,可能在/etc/httpd/conf.d/access.conf/下面里面还有php.conf 文件,这个文件可能会解决一些系统的文件大小限制问题
分享到:
评论

相关推荐

    【基础篇】第04篇:PHP代码审计笔记--任意文件上传1

    GitHub项目地址:https://github.com/c0ny1/upload-labsjs判断文件上传文件类型,抓包绕过文件类型匹配,抓包修改Conte

    PHP文件上传与下载学习笔记

    PHP文件上传与下载学习笔记 PHP版本:1、文件上传配置 文件上传后,Php获取的上传文件的信息 PHP端config配置文件配置

    02-PHP文件包含.zip

    php文件上传 资料+笔记

    php即时通讯功能的多功能内网、外网办公管理系统

    2.文件存储功能 3.绩效考评功能 4.即时通讯功能 5.每日待办功能 6.客户管理功能 7.部门管理功能 8.个人笔记功能 9.内部文件笔记分享功能 10.操作信息记录 11.月报管理功能 12.笔记共享功能 13.员工空间动态发短说说 ...

    PHP工作笔记.zip

    [第一例 留言板][第二例 WebUpload文件上传][第三例 UEditor文本编辑器][第四例 验证码][第五例 ThinkPHP自定义分页模板][第六例 加密解密][第七例 Excel表格导入][第八例 Excel表格导出][第九例 百度地图][第十例 ...

    php学习笔记

    文件上传 53 写入文件 54 拷贝文件 54 文件和文件夹的创建和删除 55 画图 56 画饼状图 56 案例一:投票柱状统计图 57 案例二:验证码 59 GD库 60 PHP和数据库 64 mysql扩展库 64 一.创建一张用户表 64 二...

    PHP 核心编程技术 个人笔记

    多文件上传的$_FILES变量的数据结构形式 12 对多文件信息的遍历读取和处理 13 文件上传后续问题 14 Mysql扩展 17 连库基本操作 17 连接数据库服务器 17 设置连接编码 18 选定要使用的数据库 18 关闭连接 19 执行增...

    minisay笔记程序 1.2.0 beta.zip

    minIsay是一个简单的笔记程序,是我在学习php...2.增加文件上传功能 3.只保留一个模板,其余模板请从主页下载。 安装:导入sql/minisay.sql到mysql数据库中;配置config.php中数据库连接信息。 升级:文件覆盖即可。

    phpdemo:php学习笔记

    #php学习笔记 ##ajax文件夹下的小例子 ajax实现输入框自动完成功能 auto-...多文件上传及路径存储 moreUpload.php session和cookie实现用户自动登录 login.php session-cookie.php test-session.php outLogin.php

    微信小程序学习笔记之文件上传、下载操作图文详解

    本文实例讲述了微信小程序学习笔记之文件上传、下载操作。分享给大家供大家参考,具体如下: 前面介绍了微信小程序登录API与获取用户信息操作。这里再来介绍一下文件的上传与下载操作。 【文件上传】wx.uploadFile ...

    渗透测试,文件上传漏洞笔记知识梳理图,适用于学习渗透测试初学者学习,仅供参考学习

    渗透测试,文件上传漏洞笔记知识梳理图,适用于学习渗透测试初学者学习,仅供参考学习。java php jsp jxsp,漏洞利用,前端验证,ISS,Apache,Nginx,通用手法,WAF绕过特殊情况处理,以及安全防护漏洞修复。

    PHP文件打开关闭及读写操作示例解析

    PHP支持文件上传功能,因此学习PHP文件的相关操作是必须的,这篇笔记会去记录PHP文件系统的相关知识。 文件打开与关闭 文件处理包括读取、关闭、重写等,例如,访问一个文件需要3步:打开文件、读写文件和关闭文件。...

    php项目-PHP论文格式化系统——前台的设计与实现(源代码+论文).rar

    2. **论文上传**:支持多种文件格式(如Word、PDF等),系统自动解析并提取论文元数据(如标题、作者、摘要等)。 3. **格式化设置**:用户可根据所在学术领域或期刊要求,选择不同的论文格式模板,并进行详细的...

    php大文件分片上传完整案列 v1.0.zip

    php大文件分片上传完整案列 v1.0.zip

    chrome-bookmarks-converter:用于将 Chrome bookmark.bak 文件转换为 Chrome Bookmark.html 文件的脚本,以便您可以从 AppData 文件导入书签

    将您的 .bak 文件上传为 bookmarks.txt(或在脚本中重命名以匹配)。 运行脚本。 您的书签将被转换,并保存为 export.html 笔记 我很快就把它放在了一起,所以它可能不是最有效的,也不支持 .bak 文件的所有用例...

    PHP实现socket和websocket

    知勤者笔记(https://www.zhiqinzhe.com)可以免费获取本人在CSDN和其他平台上传的资源(或下载地址)。 PHP实现socket和websocket;socket为套接字,只能客户端和服务端同时是PHP语言编写的;websocket也是套接字...

    记事本资讯网站源码.zip

    一、将整站解压后,将文件夹内的所有文件上传到网站根目录(西部数码的根目录是:wwwroot,不同网站的根目录名称不同,请咨询空间提供商,不要来问我) 注意:如果您的空间支持在线解压的话,建议您直接将压缩文件...

Global site tag (gtag.js) - Google Analytics