今天分享一下将客户端文件如何上传到服务器端
单个文件上传
首先,我们先写好一个静态表单页面,本案例中利用的bootstrap框架搭建的,在此值展示HTML代码,bootstrap框架里面的js和css就不展示出来了,感兴趣的朋友可以下载bootstrap框架。
index.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>PHP单文件上传</title>
<script type="javascript" src="../static/js/jquery-1.11.1.min.js"></script>
<script type="javascript" src="../static/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="../static/css/bootstrap.min.css">
<link rel="stylesheet" href="../static/css/bootstrap-theme.min.css">
</head>
<body>
<div class="col-sm-4 col-sm-offset-4" style="margin-top: 100px">
<div class="panel panel-primary">
<div class="panel-heading">PHP单文件上传</div>
<div class="panel-body">
<form role="form" action="updload.php" method="post" enctype="multipart/form-data">
<div class="form-group">
<input name="upldoad" type="file" class="form-control">
</div>
<div class="form-gruop">
<input type="submit" value="上传文件" class="btn btn-primary">
</div>
</form>
</div>
</div>
</div>
</body>
</html>
在这里我们采用的是post方式进行文件提交
enctype="multipart/form-data"
这段代码当使用有文件上传控件的表单时,该值是必需的。其中enctype 属性规定在将表单数据发送到服务器之前如何对其进行编码,只有 method="post"
时才使用 enctype 属性。
表单中type的类型都包括
button定义可点击按钮(多数情况下,用于通过 JavaScript 启动脚本)。
checkbox定义复选框。
file定义输入字段和 “浏览”按钮,供文件上传。
hidden定义隐藏的输入字段。
image定义图像形式的提交按钮。
password定义密码字段。该字段中的字符被掩码。
radio定义单选按钮。
reset定义重置按钮。重置按钮会清除表单中的所有数据。
submit定义提交按钮。提交按钮会把表单数据发送到服务器。
text定义单行的输入字段,用户可在其中输入文本。默认宽度为 20 个字符。
upload.php文件
header("content-type:text/html;charset=utf-8");
echo '<pre>';
print_r($_FILES);
echo '</pre>';
//获取错误码
$error = $_FILES['upload']['error'];
if($error) { //非零
switch ($error) {
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
echo '文件大小超限';
break;
case UPLOAD_ERR_PARTIAL:
echo '文件上传不完整';
break;
case UPLOAD_ERR_NO_FILE:
echo '上传文件为空';
break;
}
} else {
$result = move_uploaded_file($_FILES['upload']['tmp_name'], './uploads/'.$_FILES['upload']['name']);
echo $result ? '上传成功' : '上传失败';
}
涉及到使用表单处理文件上传的知识,在php中我们可以使用$_FILES这个全局数组来处理
$_FILES参数详解
$_FILES[“file”][“name”] – 被上传文件的名称
$_FILES[“file”][“type”] – 被上传文件的类型
$_FILES[“file”][“size”] – 被上传文件的大小,以字节计
$_FILES[“file”][“tmp_name”] – 存储在服务器的文件的临时副本的名称
$_FILES[“file”][“error”] – 由文件上传导致的错误代码
TIPS
其中”file”指的是input的name名称
$_FILES[“file”][“error”]中的[“error”]值情况
UPLOAD_ERR_OK 没有错误发生,文件上传成功
UPLOAD_ERR_INI_SIZE 上传的文件超过了 php.ini中upload_max_filesize(默认情况为2M) 选项限制的值
UPLOAD_ERR_FORM_SIZE 上传文件的大小超过了 HTML表单中MAX_FILE_SIZE选项指定的值
UPLOAD_ERR_PARTIAL 文件只有部分被上传
UPLOAD_ERR_NO_FILE 没有文件被上传或传文件大小为0
为了保存我们上传的文件,要使用move_uploaded_file函数,move_uploaded_file() 函数将上传的文件移动到新位置,若成功,则返回 true,否则返回 false。并且在你的upload.php文件同目录创建一个uploads文件夹。
发表评论