本篇文章主要介绍使用 PHP 上传文件
博主博客
文件目录
- /
- upload.php
- up.html
- upload/ 自动生成的文件夹, 用来存放上传文件
upload.php
<?php
/**
* User: [email protected]
* Date: 2016/6/11
* Time: 0:33
*/
header("Content-type: text/html; charset=utf-8");
define("NL", "<br />\n");
$path = "upload/";
// 接收 GET 参数中的 tokenId
if (!empty($_GET) && isset($_GET["tokenId"])) {
printf("tokenId=%s%s", $_GET["tokenId"], NL);
}
// 接收 POST 参数中的 data
if (!empty($_POST) && isset($_POST["data"])) {
printf("data=%s%s", $_POST["data"], NL);
}
// 服务器限制文件大小, 所以接收到大文件有可能为空
if (!isset($_FILES["uploadFile"])) {
die("文件为空!");
}
if ($_FILES["uploadFile"]["error"] > 0) {
die("错误代码:" . $_FILES["uploadFile"]["error"] . NL);
} else {
printf("文件名:\t%s%s文件类型:\t%s%s文件大小:\t%sKB%s临时文件绝对路径:\t%s%s",
$_FILES["uploadFile"]["name"], NL,
$_FILES["uploadFile"]["type"], NL,
($_FILES["uploadFile"]["size"] / 1024), NL,
$_FILES["uploadFile"]["tmp_name"], NL);
}
// 上传限制(image/jpeg 为jpg图片, text/plain为txt文本, 还能使用size限制大小)
if (($_FILES["uploadFile"]["type"] == "image/jpeg")
|| $_FILES["uploadFile"]["type"] == "text/plain") {
if (file_exists($path . $_FILES["uploadFile"]["name"])) {
die($_FILES["uploadFile"]["name"] . "已经存在!");
} else {
// 如果 upload 文件夹不存在就创建
if (!file_exists($path)) mkdir($path);
// 把临时文件移到该文件目录, 并且重命名, 使用iconv防止上传中文文件出现中文乱码
move_uploaded_file($_FILES["uploadFile"]["tmp_name"], $path . iconv("UTF-8", "gb2312", $_FILES["uploadFile"]["name"]));
printf("%s上传完成!", $_FILES["uploadFile"]["name"]);
}
} else {
die("不支持上传该文件!");
}
up.html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传文件</title>
</head>
<body>
<form action="upload.php?tokenId=abc" method="post" enctype="multipart/form-data" >
<input type="file" name="uploadFile" id="uploadFile" />
<input type="text" name="data" id="data" value="This is data!" />
<input type="submit" value="提交" />
</form>
</body>
</html>