1、PHP移动互联网开发笔记PHP移动互联网开发笔记-文件的上传下载一、文件的上传1、客户端设置:(1)、在窗体顶端标签中将enctype和method两个属性指明相应的值。Enctype=multipart/form-data; Method=POST(2)、form表单中设置一个hidden类型的input框,其中name的值为MAX_FILE_SIZE的隐藏值2、服务器端设置:(1)、$_FILES多维数组:用于存储各种上传文件有关的信息(2)、文件上传与php配置文件的设置,如以下php.ini文件中的一些指令指令 默认值 功能描述file_uploads ON 确定服务器上的PHP脚本是
2、否可以接受HTTP文件上传memory_limit 8M 设置脚本可以分配的最大内存量,防止失控的脚本独占服务器内存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(
3、integer) 单位MPHP脚本运行的最大内存upload_max_filesize(integer) 单位MPHP上传文件的最大尺寸upload_tmp_dir(string)上传文件存储的临时位置post_max_size(integer) 单位MHTTP POST数据的最大尺寸4、$_FILES数组$_FILESuserfilesize获取上传文件的字节数$_FILESuserfiletype获取上传文件的MIME类型,每种MIME类型都是由“/”分隔的主类型和子类型组成$_FILESuserfileerror获取上传文件的错误代码,0:无任何错误,文件上传成功;1:上传文件大小超出了
4、PHP配置文件中upload_max_filesize选项限定的值;2:上传文件大小超出了HTML表单中MAX_FILE_SIZE指定的值;3:表示文件只被部分上传;4:表示没有上传任何文件。$_FILESuserfilename获取上传文件的原始名称,包含扩展名$_FILESuserfiletmp_name获取上传文件的临时位置名称,这是存储在临时目录中所指定的文件名。5、文件上传函数is_upload_file判断指定的文件是否是通过HTTP POST上传bool is_upload_file(string $filename)move_upload_file将上传文件移至新位置bool
5、move_upload_file(string $filename, string $destination)注意:文件上传后,首先会存储于服务器的临时目录中,可以使用该函数将上传文件移动到新位置,与copy()和move()相比,它能检测并确保第一个参数filename指定的文件是否是合法上传的文件。6、错误信息描述UPLOAD_ERR_OKvalue=0UPLOAD_ERR_INI_SIZEvalue=1UPLOAD_ERR_FORM_SIZEvalue=2UPLOAD_ERR_PARTIALvalue=3UPLOAD_ERR_NO_FILEvalue=4UPLOAD_ERR_NO_TMP
6、_DIRvalue=6UPLOAD_ERR_CANT_WRITEvalue=7窗体底端二、文件下载简单文件下载只需要使用HTML的链接标记,并将属性href的URL值指定下载的文件即可。这种方法只能处理一些浏览器不能识别的MIME类型文件。为了提高安全性,不希望在a标签中给出文件链接,则必须向浏览器发送必要的头信息,我们可以使用如下代码。三、文件函数库touch设置文件的访问和修饰时间bool touch(string $filename, int $time, int $time)copy复制文件bool copy(string $source, string $dest)注意:移动文件请使
7、用rename函数file_put_contents将一个字符串写入文件int file_put_tents(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
8、$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
9、_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
10、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);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1