文件上传与下载学习笔记(1)---文件上传原理及配置

一:原理:将客户端的文件上传到服务器端的临时目录,再将服务器端的临时文件移动到指定目录

二:客户端的配置

  1. 表单的method必须为post方法
  2. 表单必须添加enctype="multipart/form-data"属性

二者缺一不可。

三:将临时文件移动到指定目录

两种方法:1:move_uploaded_file($filename, $destination)

2:copy($source, $dest)

四:php.ini中的配置

在php.ini中搜索uploads ,会看到uploads模块的配置

第一项:file_uploads=On 开启文件上传功能

第二项:upload_tmp_dir="C:\xampp\tmp" 临时目录

第三项:upload_max_filesize 允许上传的最大文件大小

第四项:post_max_size 通过post方法传递的数据大小

第五项:max_file_uploads=20 一次最多上传20个文件

关于资源的配置
max_execution_time=30 脚本解析器终止之前允许的最大执行时间,单位为秒。防止程序写的不好而占尽服务器资源
max_input_time=60 脚本解析输入数据post、get等的最大时间
max_input_nesting_level = 64 设置输入变量的嵌套深度
memory_limit =128M 最大单线程(web请求)的独立内存使用量
max_input_vars = 1000 接受多少输入的变量

五:error错误号解析

0 上传成功 上传到临时目录成功
1 超过了upload_max_filesize的值
2 超过了MAX_FILE_SIZE指定的值(表单)
3 文件只有部分被上传
4 没有文件被上传
6 找不到临时目录
7 文件写入失败
8 上传的文件被PHP扩展程序中断

时间: 2024-11-29 06:16:45

文件上传与下载学习笔记(1)---文件上传原理及配置的相关文章

文件上传与下载学习笔记(2)---多文件、单文件、多个单文件函数封装

一:前导知识点: 1:is_string()判断一个变量是否是字符串 is_array 判断一个变量是否是数组 2:pathinfo()函数可以获取文件的扩展名. 3:创建目录函数 mkdir() 4: 生成唯一的随机数 uniqid() 5:判断文件.目录是否存在file_exsits() 二:思路与流程 三:封装的函数代码 1 <?php 2 /** 3 * 得到想要的文件类型 4 * @return unknown 5 */ 6 function getFiles() { 7 $i = 0

文件上传与下载学习笔记(3)---面向对象方法实现文件上传

代码: 1 <?php 2 class uploadClass { 3 protected $filename; 4 protected $maxSize; 5 protected $allowExt; 6 protected $allowMime; 7 protected $uploadPath; 8 protected $imgFlag; 9 protected $fileInfo; 10 protected $error; 11 protected $ext; 12 protected $

文件上传与下载学习笔记(4)---文件下载

对于图片格式.HTML格式的文件,浏览器可以直接解析,但是如果不想让浏览器解析,让浏览器下载怎么办? 1 <?php 2 header("content-disposition:attachment;filename=".basename("1.jpg"));//basename()的使用 3 header("content-length:".filesize("1.jpg")); //下载时提示文件大小 4 readf

HCNP学习笔记之BGP协义原理与配置1-基础知识

动态路由协议可以按照工作范围分为IGP以及EGP. IGP工作在同一个AS内,主要用来发现和计算路由,为AS内提供路由信息的交换: AS:路由管理域的集合. 而EGP工作在AS与AS之间,在AS间提供无环路的路由信息交换,BGP则是EGP的一种. BGP协议经常用于ISP之间. 自治系统AS:的典型定义是指由同一个技术管理机构管理,使用统一选路策略的一些路由器的集合. 每个自治系统都有唯一的自治系统编号,这个编号是由IANA分配的.1-65535(2个字节) 私有编号:64512-65535 现

学习笔记_springmvc文件上传和拦截器

文件上传 用到这两个包 配置视图解析器:springmvc配置文件配置 <!-- id必须要是"multipartResolver" --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- maxUploadSize文件上传的最大值,单位是byte

树莓派学习笔记——使用文件IO操作GPIO SysFs方式

0 前言 本文描述如果通过文件IO sysfs方式控制树莓派 GPIO端口.通过sysfs方式控制GPIO,先访问/sys/class/gpio目录,向export文件写入GPIO编号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括direction和value等,direction控制GPIO方向,而value可控制GPIO输出或获得GPIO输入. Linux学习可从应用出发,先不纠结Linux驱动编写,先把Linux给玩起来. [相同与不同] 本文和[EasyARM

Linux 程序设计学习笔记----POSIX 文件及目录管理

转载请注明:http://blog.csdn.net/suool/article/details/38141047 问题引入 文件流和文件描述符的区别 上节讲到ANSI C 库函数的实现在用户态,流的相应资源也在用户空间,但无论如何实现最终都需要通过内核实现对文件的读写控制.因此fopen函数必然调用了对OS的系统调用.这一调用在LINUX下即为open, close, read, write等函数.这些都遵循POSIX标准. so,在linux系统中是如何通过POSIX标准实现对文件的操作和目

Linux System Programming 学习笔记(八) 文件和目录管理

1. 文件和元数据 每个文件都是通过inode引用,每个inode索引节点都具有文件系统中唯一的inode number 一个inode索引节点是存储在Linux文件系统的磁盘介质上的物理对象,也是LInux内核通过数据结构表示的实体 inode存储相关联文件的元数据 ls -i 命令获取文件的inode number /* obtaining the metadata of a file */ #include <sys/types.h> #include <sys/stat.h>

APUE 学习笔记(二) 文件I/O

1. 文件I/O 对于内核而言,所有打开的文件都通过文件描述符引用,内核不区分文本文件和二进制文件 open函数:O_RDONLY  O_WRONLY  O_RDWR create函数: close函数:关闭一个文件时还会释放该进程加在该文件上的所有记录锁 lseek函数:显式地为一个打开的文件设置其偏移量 每个打开的文件都有一个与其相关联的 "当前文件偏移量",用以度量从文件开始处计算的字节数,通常,读.写操作都从当前文件偏移量处开始,并使偏移量增加所读写的字节数 文件偏移量可以大于