帮助
|
留言交流
|
首 页
阅览室
馆友
我的图书馆
来自:
thedust79
>
馆藏分类
配色:
字号:
大
中
小
PHP 文件上传
2016-08-20 | 阅:
转:
|
分享
PHP文件上传
PHP文件创建/写入
PHPCookies
通过PHP,可以把文件上传到服务器。
创建一个文件上传表单
允许用户从表单上传文件是非常有用的。
请看下面这个供上传文件的HTML表单:
enctype="multipart/form-data">
Filename:
请留意如下有关此表单的信息:
标签的enctype属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用"multipart/form-data"。
标签的type="file"属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。
注释:允许用户上传文件是一个巨大的安全风险。请仅仅允许可信的用户执行文件上传操作。
创建上传脚本
"upload_file.php"文件含有供上传文件的代码:
if($_FILES["file"]["error"]>0)
{
echo"Error:".$_FILES["file"]["error"]."
";
}
else
{
echo"Upload:".$_FILES["file"]["name"]."
";
echo"Type:".$_FILES["file"]["type"]."
";
echo"Size:".($_FILES["file"]["size"]/1024)."Kb
";
echo"Storedin:".$_FILES["file"]["tmp_name"];
}
?>
通过使用PHP的全局数组$_FILES,你可以从客户计算机向远程服务器上传文件。
第一个参数是表单的inputname,第二个下标可以是"name","type","size","tmp_name"或"error"。就像这样:
$_FILES["file"]["name"]-被上传文件的名称
$_FILES["file"]["type"]-被上传文件的类型
$_FILES["file"]["size"]-被上传文件的大小,以字节计
$_FILES["file"]["tmp_name"]-存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"]-由文件上传导致的错误代码
这是一种非常简单文件上传方式。基于安全方面的考虑,您应当增加有关什么用户有权上传文件的限制。
上传限制
在这个脚本中,我们增加了对文件上传的限制。用户只能上传.gif或.jpeg文件,文件大小必须小于20kb:
if((($_FILES["file"]["type"]=="image/gif")
||($_FILES["file"]["type"]=="image/jpeg")
||($_FILES["file"]["type"]=="image/pjpeg"))
&&($_FILES["file"]["size"]<20000))
{
if($_FILES["file"]["error"]>0)
{
echo"Error:".$_FILES["file"]["error"]."
";
}
else
{
echo"Upload:".$_FILES["file"]["name"]."
";
echo"Type:".$_FILES["file"]["type"]."
";
echo"Size:".($_FILES["file"]["size"]/1024)."Kb
";
echo"Storedin:".$_FILES["file"]["tmp_name"];
}
}
else
{
echo"Invalidfile";
}
?>
注释:对于IE,识别jpg文件的类型必须是pjpeg,对于FireFox,必须是jpeg。
保存被上传的文件
上面的例子在服务器的PHP临时文件夹创建了一个被上传文件的临时副本。
这个临时的复制文件会在脚本结束时消失。要保存被上传的文件,我们需要把它拷贝到另外的位置:
if((($_FILES["file"]["type"]=="image/gif")
||($_FILES["file"]["type"]=="image/jpeg")
||($_FILES["file"]["type"]=="image/pjpeg"))
&&($_FILES["file"]["size"]<20000))
{
if($_FILES["file"]["error"]>0)
echo"ReturnCode:".$_FILES["file"]["error"]."
";
else
echo"Upload:".$_FILES["file"]["name"]."
";
echo"Type:".$_FILES["file"]["type"]."
";
echo"Size:".($_FILES["file"]["size"]/1024)."Kb
";
echo"Tempfile:".$www.wang027.com_FILES["file"]["tmp_name"]."
";
if(file_exists("upload/".$_FILES["file"]["name"]))"
";
echo$_FILES["file"]["name"]."alreadyexists.";
else
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/".$_FILES["file"]["name"]);
echo"Storedin:"."upload/".$_FILES["file"]["name"];
else
echo"Invalidfile";
?>
面的例子选取存储在"Persons"表中的所有数据(字符选取表中所有数据):
$con=mysql_connect("localhost","peter","abc123");
if(!$con)
die(''Couldnotconnect:''.mysql_error());
mysql_select_db("my_db",$con);
$result=mysql_query("SELECTFROMPersons");
while($row=mysql_fetch_array($result))
{
echo$row[''FirstName'']."".$row[''LastName''];
echo"
";
}
mysql_close($con);
?>
上面这个例子在$result变量中存放由mysql_query()函数返回的数据。接下来,我们使用mysql_fetch_array()函数以数组的形式从记录集返回第一行。每个随后对mysql_fetch_array()函数的调用都会返回记录集中的下一行。whileloop语句会循环记录集中的所有记录。为了输出每行的值,我们使用了PHP的$row变量($row[''FirstName'']和$row[''LastName''])。
以上代码的输出:
PeterGriffin
GlennQuagmire
在HTML表格中显示结果
下面的例子选取的数据与上面的例子相同,但是将把数据显示在一个HTML表格中:
$con=mysql_connect("localhost","peter","abc123");
if(!$con)
die(''Couldnotconnect:''.mysql_error());
mysql_select_db("my_db",$con);
$result=mysql_query("SELECTFROMPersons");
echo"
Firstname
Lastname
";
while($row=mysql_fetch_array($result))
{
echo"
";
echo"
".$row[''FirstName'']."
";
echo"
".$row[''LastName'']."
";
echo"
";
}
echo"
";
mysql_close($con);
?>
献花(
0
)
+1
(本文系
thedust79
首藏
)
类似文章
更多
Zendframe 下怎么获得模板页表单里提交的上传文件,并保存
PHPStorm Mac如何利用MAMP配置php?
图片上传的设置
PHP教程-简单表单的实现
php中POST 方法上传 文件
在PHP中判断文件是否被修改
DedeCMS提交自定义表单加入验证码功能
php初学者基础知识
修改 apache 上传文件大小限制
发表评论: