PHP移动互联网开发笔记(5)——文件的上传下载

简介:
+关注继续查看

原文地址:http://www.php100.com/html/php/rumen/2014/0326/6706.html


一、文件的上传

 

1、client设置:

 

 

(1)、在

标签中将enctype和method两个属性指明对应的值。

 

Enctype="multipart/form-data"; Method="POST"

(2)、form表单中设置一个hidden类型的input框,当中name的值为MAX_FILE_SIZE的隐藏值

2、server端设置:

(1)、$_FILES多维数组:用于存储各种上传文件有关的信息

(2)、文件上传与php配置文件的设置,例如以下面php.ini文件里的一些指令

指令 默认值 功能描写叙述

file_uploads ON 确定server上的PHP脚本能否够接受HTTP文件上传

memory_limit 8M 设置脚本能够分配的最大内存量,防止失控的脚本独占server内存

upload_max_file 2M 限制PHP处理上传文件大小的最大值。此值必须小于POST_MAX_SIZE值

post_max_size 8M 限制通过POST方法能够接受信息的最大值

upload_tmp_dir NULL 上传文件的暂时路径,能够是一个绝对路径

\

 

  1. \   
\

 

3、PHP的文件上传及资源指令

file_uploads(boolean)

是否开启HTTP POST文件上传功能

max_execution_time(integer)

PHP脚本最长运行时间

memory_limit(integer) 单位M

PHP脚本执行的最大内存

upload_max_filesize(integer) 单位M

PHP上传文件的最大尺寸

upload_tmp_dir(string)

上传文件存储的暂时位置

post_max_size(integer) 单位M

HTTP POST数据的最大尺寸

4、$_FILES数组

$_FILES['userfile'][size]

获取上传文件的字节数

$_FILES['userfile']['type']

获取上传文件的MIME类型,每种MIME类型都是由“/”分隔的主类型和子类型组成

$_FILES['userfile']['error']

获取上传文件的错误代码,0:无不论什么错误,文件上传成功。1:上传文件大小超出了PHP配置文件里upload_max_filesize选项限定的值;2:上传文件大小超出了HTML表单中MAX_FILE_SIZE指定的值;3:表示文件仅仅被部分上传;4:表示没有上传不论什么文件。

$_FILES['userfile']['name']

获取上传文件的原始名称,包括扩展名

$_FILES['userfile']['tmp_name']

获取上传文件的暂时位置名称,这是存储在暂时文件夹中所指定的文件名称。

5、文件上传函数

is_upload_file

推断指定的文件是否是通过HTTP POST上传

bool is_upload_file(string $filename)

move_upload_file

将上传文件移至新位置

bool move_upload_file(string $filename, string $destination)

注意:文件上传后。首先会存储于server的暂时文件夹中,能够使用该函数将上传文件移动到新位置,与copy()和move()相比。它能检測并确保第一个參数filename指定的文件是否是合法上传的文件。

6、错误信息描写叙述

UPLOAD_ERR_OK{value=0}

UPLOAD_ERR_INI_SIZE{value=1}

UPLOAD_ERR_FORM_SIZE{value=2}

UPLOAD_ERR_PARTIAL{value=3}

UPLOAD_ERR_NO_FILE{value=4}

UPLOAD_ERR_NO_TMP_DIR{value=6}

UPLOAD_ERR_CANT_WRITE{value=7}


\
 
\

 

二、文件下载

 

 

简单文件下载仅仅须要使用HTML的链接标记,并将属性href的URL值指定下载的文件就可以。这样的方法仅仅能处理一些浏览器不能识别的MIME类型文件。


\

 

\\

 

为了提高安全性,不希望在a标签中给出文件链接,则必须向浏览器发送必要的头信息,我们能够使用例如以下代码。

\

 

三、文件函数库

touch

设置文件的訪问和修饰时间

bool touch(string $filename[, int $time[, int $time]])

copy

拷贝文件

bool copy(string $source, string $dest)

注意:移动文件请使用rename函数

file_put_contents

将一个字符串写入文件

int file_put_contents(string $filename, string $data[, int $flag[, resource $content]])

file_get_contents

将整个文件读到字符串

string file_get_contents(string $filename[, bool user_include_path [, resource $content[, int $offset[, int $maxlen]]]])

 

四、序列化与反序列化

serialize

序列化

string serialize(mixed $value)

注意:serialize()可处理除了resouce之外的不论什么类型。

甚至能够serialize()那些包括了指向其自身引用的数组。

unserialize

反序列化

mixed unserialize(string $str)

\

\

● date

格式化一个本地时间/日期

string date(string format[, int timestamp]);

● getdate

取得日期/时间信息

array getdate([int timestamp]);

\

\

 

● microtime

返回当前Unix时间戳和微秒数

mixed microtime([bool get_as_float]);

● date_default_timezone_set

设置默认时区

bool date_default_timezone_set(string timezone_identifier);

● date_default_timezone_get

获取默认时区

string date_default_timezone_get(void);

三、字符函数库

strlen

获取字符串长度

int strlen(string $str);

strtolower

字符串转换为小写

string strtolower(string $str);

strtoupper

字符串转换为大写

string strtoupper(string $str);

ucfirst

首字母大写

string ucfirst(string $str);

ucwords

将每一个单词的首字母转换为大写字母

string ucwords(string $str);

ltrim

从字符串開始的位置删除空格或其它字符

string ltrim(string $str [, string $charlist]);

rtrim

从字符串结束的位置删除空格或者其它字符

string rtrim(string $str[, string $chirlist]);

trim

从字符串開始和结束的位置删除空格或者其它字符

str_replace

字符替换

mixed str_ireplace(mixed $search, mixed $replace, mixed $subject, [int $count]);

str_ireplace

 

字符替换

mixed str_ireplace(mixed $search, mixed $replace, mixed $subject, [int $count]);

md5

 

计算字符串的MD5哈希

string md5(string $str[, bool $raw_output=false]);

strpos

返回一个字符在还有一个字符第一次出现的位置

int strpos(string haystack, mixed needle[, int offset]);






相关文章
|
4月前
|
移动开发 前端开发 搜索推荐
基于PHP开发的拍卖直播系统源码分享
东莞梦幻网络科技最新推出的拍卖直播系统源码,安卓端使用Java语言开发,苹果端则采用Objective-C开发,前端H5则采用了Vue.js开发,后台管理系统基于PHP的ThinkPHP框架开发。
|
4月前
|
NoSQL 测试技术 PHP
CRM系统源码PHP开发
在竞争激烈的市场中,公司需要与客户保持积极的关系。一个好的CRM(客户关系管理)系统可以帮助公司满足客户,研究将探索建立有效的CRM以满足客户的不同方法和技术。目的是检查客户关系管理 (CRM) 在保留和满足客户方面的有效性。研究表明,客户关系管理对客户满意度有显着影响,且两个变量均呈正相关关系。公司使其 CRM 变得强大和可靠,客户将更加满意并留住公司。   
|
4月前
|
IDE NoSQL 关系型数据库
开发php,需要安装哪些工具
开发php,需要安装哪些工具
|
5月前
|
IDE 关系型数据库 MySQL
window下面安装phpstudy进行PHP开发
php的集成开发环境比较多,有wamp server,xmapp,phpstudy等。经过这些年的体验,发现相对来说个人还是比较喜欢phpstudy一点。主要原因有一下几点。维护的比较频繁,一直有更新。可以灵活切换多个php版本,这样针对于不同的php项目能够很好的适应。一件集成,傻瓜安装,让开发人员关注于开发本身。
|
5月前
|
SQL 安全 关系型数据库
php开发实战分析(8):mysql类库的操作高级使用API开发(字段操作、权限分配、日期格式、跨表查询,数据分表)
php开发实战分析(8):mysql类库的操作高级使用API开发(字段操作、权限分配、日期格式、跨表查询,数据分表)
270 0
|
5月前
|
JSON 监控 API
php对接小鹅通API开发高级实战案例解析:获取指定资源学习记录信息(单人单学习记录、单人多学习记录累计、返回数据格式确认)
php对接小鹅通API开发高级实战案例解析:获取指定资源学习记录信息(单人单学习记录、单人多学习记录累计、返回数据格式确认)
144 0
|
5月前
|
测试技术 API PHP
php对接小鹅通API开发高级实战案例解析:小鹅通实战开发之合并用户user_id批量同步
php对接小鹅通API开发高级实战案例解析:小鹅通实战开发之合并用户user_id批量同步
106 0
|
5月前
|
缓存 负载均衡 监控
php开发中大数据量优化的问题总结(1):smarty循环优化、API掉包丢失数据排查、负载平衡配置
php开发中大数据量优化的问题总结(1):smarty循环优化、API掉包丢失数据排查、负载平衡配置
78 0
|
5月前
|
数据可视化 前端开发 JavaScript
漏刻有时数据可视化大屏引导页设计(php原生开发、主背景图片更换、标题设置)
漏刻有时数据可视化大屏引导页设计(php原生开发、主背景图片更换、标题设置)
73 0
相关产品
云迁移中心
推荐文章
更多