`

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

    linux命令笔记-2

    在这个"Linux命令笔记-2"中,我们将深入探讨两个关键的命令:`scp`和`grep`,它们是Linux系统管理和数据操作的必备工具。 ** SCP (Secure Copy)** `scp`命令是用于在Linux系统之间安全地传输文件和目录的工具,它...

    韩顺平.php从入门到精通笔记- 完整版149讲doc文档

    文件操作是PHP的一大特色,笔记中会详细解释如何读写文件、目录操作以及文件上传下载。这在Web开发中是不可或缺的部分,例如处理用户表单提交、保存数据到文件系统或者从服务器获取文件。 面向对象编程(OOP)是...

    1-OSCP自学笔记-October靶机练习1

    【OSCP自学笔记-October靶机练习1】这篇教程主要介绍了如何通过渗透测试技术攻破一个名为"October"的靶机。靶机来自于Vulnhub平台,作者选择了10台典型的靶机作为OSCP(Offensive Security Certified Professional)...

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

    在PHP中,文件上传和下载是常见的Web应用功能,用于处理用户上传的文件或提供文件供用户下载。本文将深入探讨PHP文件上传的配置、PHP如何获取上传文件信息以及配置文件的相关设置。 ### 1. 文件上传配置 PHP的文件...

    laravel框架学习笔记--阿里云部署

    2. **代码上传与解压** - 将本地的Laravel项目代码通过`scp`命令或FTP工具上传到服务器。 - 在服务器上找到项目目录,解压项目文件到指定位置,例如`/var/www/html/laravel_project`。 3. **数据库配置** - 创建...

    php全套笔记韩顺平

    - `9-24 文件上传 画图.rar`可能涉及到文件上传的处理过程,包括表单提交、文件验证、安全防护,以及使用PHP进行图像处理和绘图。 6. **MVC框架与分页封装**: - `9-20 分页封装 MVC.rar`可能讲解了MVC模式在PHP...

    web网站文件上传漏洞和攻击-运维安全详细笔记

    Web 网站文件上传漏洞和攻击 - 运维安全详细笔记 文件上传漏洞是 Web 应用程序中的一种常见漏洞,攻击者可以通过上传恶意文件来获取服务器的控制权。本文将详细介绍文件上传漏洞的原理、实验步骤和防御方法。 一、...

    PHP开发笔记系列(四)-文件操作

    3. **文件上传** 当用户通过表单上传文件时,PHP提供`$_FILES`全局变量来处理上传。`move_uploaded_file()`函数用于将上传的临时文件移动到服务器上的指定位置。 4. **目录操作** PHP提供了处理目录的函数,如`...

    php-paper-开发笔记

    PHP的设计目标是提高网站的动态内容生成效率,它支持多种数据库,如MySQL、PostgreSQL等,可以处理表单数据,实现用户交互,还能进行文件上传下载等功能。PHP是免费的,且有丰富的扩展库,这使得它成为初学者和专业...

    PHP开发笔记系列(八)- 上传与下载

    首先,我们来了解一下PHP文件上传的基本原理。当用户通过HTML表单提交包含文件的请求时,PHP会接收到一个特殊的数组`$_FILES`,其中包含了关于上传文件的所有信息,如文件名、类型、大小、错误状态等。例如: ```...

    当年我学PHP时整理的学习笔记

    8. **文件上传.php**:讲解了如何使用PHP处理文件上传,涉及表单提交、文件验证、错误处理和文件移动等内容。 9. **正则表达式.php**:涵盖了正则表达式的语法和使用,如何在PHP中进行模式匹配和替换。 10. **运算符...

    韩顺平php从入门到精通笔记(全1-149讲)

    笔记会解释如何接收表单数据、验证用户输入,以及安全地处理文件上传。此外,还将涉及Cookie和Session的使用,用于管理用户状态和实现会话控制。 在高级主题部分,笔记会涉及PHP的模板引擎,如Smarty,以及PHP的...

    02-PHP文件包含.zip

    php文件上传 资料+笔记

    php框架学习笔记.doc

    PHP框架学习笔记是学习PHP框架的重要笔记,涵盖了CI框架的基本概念、控制器、模型、视图、URI路由、数据库操作、表单提交、上传文件、Session管理等方面的知识点。 CI框架的业务流程是从域名或入口开始的,默认入口...

    按照视频课程整理php笔记

    5. **文件操作**:理解文件读写、上传下载等操作。 6. **面向对象编程**:学习类、对象、继承、封装和多态的概念。 7. **错误与异常处理**:了解如何有效地处理程序中的错误和异常。 8. **数据库交互**:通过PDO或...

    PHP学习笔记之目录与文件操作

    - PHP提供`$_FILES`全局变量来处理HTTP文件上传。`move_uploaded_file()`函数用于将上传的临时文件移动到服务器上的指定位置。 6. **文件信息获取** - `file_exists()`:检查文件或目录是否存在。 - `is_file()`...

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

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

    php学习笔记

    在文件I/O方面,PHP提供了丰富的函数来读取、写入和操作文件,包括fopen、fwrite、fread、fclose等,以及文件上传和下载的处理。此外,还有目录操作函数,如mkdir、rmdir、chdir等,用于管理文件系统。 PHP与数据库...

Global site tag (gtag.js) - Google Analytics