咱们正在开发网站的时分,常常会遇到需求制造文件上传性能,上面咱们就为各人引见一下php制造文件上传性能的具体步骤。
保举教程:PHP视频教程
第一步:创立一个文件上传表单
容许用户从表单上传文件长短常有用的。
请看上面这个供上传文件的 HTML 表单:
<html> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data"> <label for="file">Filename:</label> <input type="file" name="file" id="file" /> <br /> <input type="submit" name="submit" value="Submit" /> </form> </body> </html>
请注意以下无关此表单的信息:
<form> 标签的 enctype 属性规则了正在提交表单时要应用哪一种内容类型。正在表单需求二进制数据时,比方文件内容,请应用 "multipart/form-data"。
<input> 标签的 type="file" 属性规则了应该把输出作为文件来解决。举例来讲,当正在阅读器中预览时,会看到输出框旁边有一个阅读按钮。
正文:容许用户上传文件是一个微小的平安危险。请仅仅容许可托的用户执行文件上传操作。
第二步:创立上传剧本
"upload_file.php" 文件含有供上传文件的代码:
<?php if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Stored in: " . $_FILES["file"]["tmp_name"]; } ?>
经过应用 PHP 的全局数组 $_FILES,你能够从客户较量争论机向近程效劳器上传文件。
第一个参数是表单的 input name,第二个下标能够是 "name", "type", "size", "tmp_name" 或 "error"。就像这样:
●$_FILES["file"]["name"] - 被上传文件的称号
●$_FILES["file"]["type"] - 被上传文件的类型
●$_FILES["file"]["size"] - 被上传文件的巨细,以字节计
●$_FILES["file"]["tmp_name"] - 存储正在效劳器的文件的暂时正本的称号
●$_FILES["file"]["error"] - 由文件上传招致的谬误代码
这是一种十分简略文件上传形式。基于平安方面的思考,您该当添加无关甚么用户有权上传文件的限度。
第三步:上传限度
正在这个剧本中,咱们添加了对文件上传的限度。用户只能上传 .gif 或 .jpeg 文件,文件巨细必需小于 20 kb:
<?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 "Error: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Stored in: " . $_FILES["file"]["tmp_name"]; } } else { echo "Invalid file"; } ?>
正文:关于 IE,辨认 jpg 文件的类型必需是 pjpeg,关于 FireFox,必需是 jpeg。
第四步:保留被上传的文件
下面的例子正在效劳器的 PHP 暂时文件夹创立了一个被上传文件的暂时正本。
这个暂时的复制文件会正在剧本完结时隐没。要保留被上传的文件,咱们需求把它拷贝到另外的地位:
<?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 "Return Code: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Invalid file"; } ?>
下面的剧本检测了能否已存正在此文件,假如没有存正在,则把文件拷贝到指定的文件夹。
正文:这个例子把文件保留到了名为 "upload" 的新文件夹。
以上就是php文件上传步骤的具体内容,更多请存眷资源魔其它相干文章!
标签: php php开发教程 php开发资料 php开发自学