{
$filesize = $_FILES['upfile']['size']//得到文件大小
$upfile_type = $_FILES['upfile']['type'] //文件类型
$upfile_temp = $_FILES['upfile']['tmp_name'] //临时文件名
$upfile_name = $_FILES['upfile']['name'] //原文件名
$savePath = '/upload' //文件保存目录
$fs = strrpos($upfile_name,'.')//得到文件名后缀 str right position
if( $fs === false ) {
error('提取扩展名失败!')
exit
} else {
$fs = substr($upfile_name,$fs)
$fs = strtolower($fs)
}
//如:$fs(.jpg) =>$ext(jpg)
$ext = substr($fs,1)
if(in_array($upfile_type,$sparr_image) || in_array( $ext,$sp_image) )
{//图片
$mediatype=1
$savePath .= '/image/'
mymkdir(SITE_ROOT.$savePath)
} else if(in_array($ext,$sp_doc)){ //word/wps文档
$mediatype = 2
$savePath .= '/doc/'
mymkdir(SITE_ROOT.$savePath)
} else if(in_array($ext,$sp_text)){ //文本文件
$mediatype = 3
$savePath .= '/doc/'
mymkdir(SITE_ROOT.$savePath)
} else if(in_array($ext,$sp_rar)) { //压缩文件
$mediatype = 4
$savePath .= '/rar/'
mymkdir(SITE_ROOT.$savePath)
} else if(in_array($ext,$sp_execl)){
$mediatype = 5
$savePath .= '/doc/'
mymkdir(SITE_ROOT.$savePath)
}else {
error("上传文件失败!<br>所上传的文件类型不被允许!只允许上传图片、文档及压缩文件")
exit
}
//构造新的文件名及完整路径(我这里用登陆时的验证码和时间做为文件名)
$savePath .= date('Y')
$filename = $_SESSION['checkcode'].time().$fs//验证码、时间、扩展名
$fullpath = SITE_ROOT.$savePath//得到完整路径
$url = $savePath.'/'.$filename //$url就是你要保存到数据库的路径了
$fullfilename = SITE_ROOT.$url //得到文件在磁盘上存储的完整路径
mymkdir($fullpath)//我自己写的函数,如果目录不存在则逐级创建目录
//移动文件
@move_uploaded_file($upfile_temp,$fullfilename)
if( !file_exists($fullfilename)) { //检测文件是否转移成功
error("文件上传失败!")
exit
}
//将文件信息插入数据库
$msg = '文件上传成功!'
$f_name = trim($_POST['title'])
$f_name = substr($f_name,0,60)
if( isset($_POST['parent']) &&$_POST['parent'] != 0) {
$sql = 'INSERT INTO z_files (filename, url,type,parent,ext,size,upuser,uptime) VALUES ('.
sprintf("'%s','%s','%d','%d','%s','%d','%d',now())",$f_name,$url,$mediatype,intval($_POST['parent']),$ext,$filesize,$_SESSION['userid'])
} else {
$sql = 'INSERT INTO z_files (filename, url,type,ext,size,upuser,uptime) VALUES ('.
sprintf("'%s','%s','%d','%s','%d','%d',now())",$f_name,$url,$mediatype,$ext,$filesize,$_SESSION['userid'])
}
//执行sql查询($db对象是我自己写的一个数据库 *** 作类)
if(!$db->query($sql)) {
error('文件信息插入数据库失败!'.$db->getLastError())
}
if( isset($_GET['mod']) &&$_GET['mod'] == 'd') {
echo '<script language="javascript" type="text/javascript">window.location="./?m=file&s=sfile"</script>'
} else {
message('./index.php?m=mediafile','文件信息插入数据库成功!', 1, $title='')
}
}
Http之Get/Post请求区别1.HTTP请求格式:
<request line>
<headers>
<blank line>
[<request-body>]
在HTTP请求中,第一行必须是一个请求行(request line),用来说明请求类型、要访问的资源以及使用的HTTP版本。紧接着是一个首部(header)小节,用来说明服务器要使用的附加信息。在首部之后是一个空行,再此之后可以添加任意的其他数据[称之为主体(body)]。
1. get是从服务器上获取数据,post是向服务器传送数据。
get 和 post只是一种传递数据的方式,get也可以把数据传到服务器,他们的本质都是发送请求和接收结果。只是组织格式和数据量上面有差别,http协议里面有介绍
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
因为get设计成传输小数据,而且最好是不修改服务器的数据,所以浏览器一般都在地址栏里面可以看到,但post一般都用来传递大数据,或比较隐私的数据,所以在地址栏看不到,能不能看到不是协议规定,是浏览器规定的。
3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
没明白,怎么获得变量和你的服务器有关,和get或post无关,服务器都对这些请求做了封装
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
post基本没有限制,我想大家都上传过文件,都是用post方式的。只不过要修改form里面的那个type参数
5. get安全性非常低,post安全性较高。
如果没有加密,他们安全级别都是一样的,随便一个监听器都可以把所有的数据监听到,不信你自己下一个监听网络资源的软件,
Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求,在FORM(表单)中,Method默认为"GET",实质上,GET和POST只是发送机制不同,并不是一个取一个发!
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个 *** 作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
1.根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。
(1).所谓安全的意味着该 *** 作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)