PHP的SESSION使用,文件上传下载等

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

PHP中Session的使用:
1. session_start():
初始化session,如果页面要使用session,必须先使用这句话,否则会报错。
告诉服务器使用session。一般来说,php是不会主动使用session的。
不过可以设置php.ini中的session.auto_start=1来自动对每个请求使用。
而用了session_start(),或者自动开启session,
服务器会根据请求头部传来的cookie中或url中的PHPSESSID来确认此sessionid对应的$_SESSION数组。
2. session_register("sessionName"):注册一个名字叫sessionName的session
3. $_SESSION["sessionName "].=”asdfasdf”:给已经注册了的session添加值
4. session_unregister("sessionName "); //注销session


PHP文件上传步骤:
1. 使用form表单上传文件,注意enctype的属性值必须是:multipart/form-date,意思是使用二进制的形式传递表单中的数据
2. 跳转之后使用:$_FILES["uploadFile"]接收到上传的文件
3. 保存需要的数据完成上传

Move_uploaded_file($uploadFile["tmp_name"], "./uploadFile/".$name)):
保存的路径必须以“.”开头,表示当前目录
Move_uploaded_file会事先检测是否是合法的上传的文件,否则不移动,只能移动从浏览器上传的文件
Copy将文件拷贝到目的地

上传文件时中文文件名乱码: 一般状况下上传以中文为文件名的文件会出现乱码: 寮€鍚疢ySql杩滅▼鐧婚檰.txt
只需要使用iconv(fromEncoding,toEncoding,filename)方法就可以
$filename=iconv("utf-8","gbk",$filename); //从utf-8转gbk
同样的,在文件下载的时候也会出现乱码问题,同样使用这个方法解决。


文件下载:
$sql=mysql_query("select * from tb_soft where id='".$id."'",$conn);
$info=mysql_fetch_array($sql);
$path=$info[address];
$filename=basename($path);
$file=fopen($path,"r");
header("Content-type:application/octet-stream");
header("Accept-ranges:bytes");
header("Accept-length:".filesize($path));
// Content-Disposition 报头用于提供一个推荐的文件名,并强制浏览器显示保存对话框
header("Content-Disposition:attachment;filename=".$filename);
echo fread($file,filesize($path));
fclose($file);
exit;


PHP时间与系统时间不匹配:
方法一:
打开php.ini文件,一般在PHP的安装根目录下 
找到其中的;date.timezone 
删掉date.timezone前面的分号,并改成date.timezone = PRC 
存盘,并重新启动Apahce服务。
方法二:
在程序前面加上date_default_timezone_set(PRC);
例如:
<?php
date_default_timezone_set(PRC);
echo date("Y-m-d H:i:s");
?> 

转载于:https://my.oschina.net/u/185335/blog/57689

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404096.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux-Ubuntu 启用root账户

From&#xff1a; http://www.cnblogs.com/ziwuge/archive/2011/11/13/2247105.html Ubuntu Linux有一个与众不同的特点&#xff0c;那就是初次使用时&#xff0c;你无法作为root来登录系统&#xff0c;为什么会这样&#xff1f;这就要从系统的安装说起。对于其他Linux系统来 说…

[ECMAScript] 举例说明你对es6的class的理解

[ECMAScript] 举例说明你对es6的class的理解 class实际上就是封装了构造函数&#xff0c;本质上class类就是一个函数 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面…

二分查找离左边元素最近的(可以等于)

int compare(const void *a,const void *b) {return *(int *)a-*(int *)b; } //二分查找离元素&#xff08;可以等于&#xff09; int bi_search(int num[10], int len, int target) { <span style"white-space:pre"> </span>int begin 0; <span sty…

[ECMAScript] 说说你对set数据结构的理解

[ECMAScript] 说说你对set数据结构的理解 似于数组&#xff0c;但它的一大特性就是所有元素都是唯一的&#xff0c;没有重复。 在向Set加入值时&#xff0c;Set不会转换数据类型&#xff0c;内部在判断元素是否存在时用的类似于精确等于()的方法&#xff0c;“2”和2是不同的&…

ecshop 标签使用 非常好的例子

ecshop 标签使用 非常好的例子 在ECSHOP代码的history.lbi 中有下面的用法。 {insert namehistory} &#xff0c;是用来显示浏览历史的。 跟踪代码后发现&#xff0c;控制语句是在 includes/lib_insert.php 文件。 这个文件是ECSHOP 动态内容函数库。 里面定义各个函数的格式都…

SecureCRT无法登录Ubuntu

一个Ubuntu系统刚安装好时&#xff0c;可能缺少必要的软件&#xff0c;导致出现各种奇怪的问题。比如&#xff1a;SecureCRT无法登录Ubuntu 最初以为是防火墙的原因&#xff0c;后来把防火墙关了后&#xff0c;发现还是一样&#xff0c;最终在网上找到了答案&#xff0c;就是因…

[数学最安逸][UVa1638改编][第一类斯特林数+组合数]杆子的排列

有高为1,2,3,...,n的杆子各一根排成一行。从左边能看到l根&#xff0c;从右边能看到r根&#xff0c;求有多少种可能。 (l,r < 200,n < 200000) 给出T 组数据 (T < 500000) 对于每一组数据输出可能的个数&#xff0c;为避免写高精&#xff0c;将答案模 1e9 7 (它为质…

[ECMAScript] 谈谈你对es6的module体系的理解

[ECMAScript] 谈谈你对es6的module体系的理解 es5的模块规范出来之前&#xff0c;前端也实现了比如AMD CMD模块规范&#xff0c;对前端模块进行管理。 es6的模块规范在语言层面实现了模块功能 为什么需要模块化&#xff0c;没有模块化之前&#xff0c;开发者如果想封装代码&a…

Servlet的生命周期 与CGI的区别

2019独角兽企业重金招聘Python工程师标准>>> 对于Servlet&#xff0c;服务器只创建每个servlet的单一实例&#xff0c;每个用户请求都会引发新的线程-----将用户请求将会给相应的doGet/doPost进行处理。那么&#xff0c;servlet是如何进行创建和销毁的&#xff1f; …

自动化打包资源混淆集成python实践----资源混淆

前面自动化打包资源混淆集成python实践----打包一文讲述了四种打包方案&#xff0c;以及美团打包方案、apk注释添加渠道号方案的实现。这里讲集成资源混淆。 1、资源混淆带来的好处&#xff1a; 1&#xff09;对资源文件起一定的保护作用&#xff0c;使其不能知其名不知意&…

[ECMAScript] 说说你对Babel的了解?

[ECMAScript] 说说你对Babel的了解&#xff1f; 1.将es6/7/8/9/10转换为es5 2.将jsx转换为js 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

[win7] 去除将窗口拖到屏幕边缘时“自动最大化”

在win7中将一个窗口拖到屏幕的边缘&#xff0c;这个窗口将会自动以最大化方式显示&#xff0c;这对于那些需要同时查看两个窗口中内容的用户来说就是个恶梦&#xff01;因为屏幕大小是有限的&#xff0c;为了同时查看两个窗口中的内容&#xff0c;就要将这两个窗口以合适的方式…

优秀技术人才需具备能力

1、工作经验。工作经验是通过对具体工作和与工作相关的知识与问题进行不断反思&#xff0c;总结其内在规律&#xff0c;并不断的进行创新和积累&#xff0c;形成知识和具体能力的过程。通过工作经验我们可以知道他曾经具体做过什么事情&#xff0c;做成功了什么事情。 一个应聘…

[ECMAScript] 说说你对async/await的理解?

[ECMAScript] 说说你对async/await的理解&#xff1f; async函数返回的是一个promise对象&#xff0c;它可以用then方法添加回调函数。 当函数执行的时候一旦遇到await就会阻塞后面的代码&#xff0c;等待promise的resolve() 作为await的返回结果。 个人简介 我是歌谣&#…

python中实现定时器Timer

实现定时器最简单的办法是就是循环中间嵌time.sleep(seconds)&#xff0c; 这里我就不赘述了 # encoding: UTF-8 import threading #Timer&#xff08;定时器&#xff09;是Thread的派生类&#xff0c; #用于在指定时间后调用一个方法。 def func():print hello timer! timer …

对当前目录及子目录下的所有源码文件及Makefile打包

自己认为一个比较有用的bash脚本&#xff0c;方便开发人员将修改过的源文件及Makefile文件打包并带到其他地方去使用 #!/bin/shif test $# -lt 1; thendestFilebasename $PWD elsedestFile$1 fifind . -name "*.h" -o -name "*.hh" -o -name "*.hpp&q…

nib和xib的区别

nib 是NeXT Interface Builder的缩写。xib 是 xml nib 文件&#xff0c;于2007年 Leopard (and Xcode 3.0) 版本中更新。 以源码方式打开查看&#xff1a;< ?xml version"1.0" encoding"UTF-8"?>78410F2521…… 相同点&#xff1a;NIB 和 XIB 都是…

[ECMAScript] 你喜欢es6的哪些特性?

[ECMAScript] 你喜欢es6的哪些特性&#xff1f; 展开操作符 解构赋值 字符串插值 方法属性 find findIndex Includes Promise ESM 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一…

iOS 应用程序的国际化

什么事应用程序的国际化? 就是不同国家之间使用的语言不一样,中国人的应用程序显示的汉字,美国人的应用程序是英文. 接下来我们就来实现应用程序的国际化: 1.首先我们新建一个工程,命名为:Internationalization-Demo; 2.添加语言(配置语言):(英文和中文) 3.目前&#xff0c;应…