如何将客户端上传的数据(post方法)存入MySQL数据库?

如何将客户端上传的数据(post方法)存入MySQL数据库?,第1张

if(isset($_FILES['upfile']) &&is_uploaded_file($_FILES['upfile']['tmp_name']))

{

$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 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6718725.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存