PHP上传文件函数:如何上传一个文件到服务器?
PHP是一种开放源码的脚本语言,适用于web开发。它广泛应用于跨平台的Web应用程序开发,是一种服务器端的语言。PHP具有处理表单和上传文件等Web开发所需的功能,可以非常方便地管理网站文件。以下是如何使用PHP上传文件的简单步骤。
步骤1: 创建一个表单
首先要创建一个表单。表单将包含一个文件上传标签。 HTML代码 :
<form action="upload.php" method="POST" enctype="multipart/form-data">
<!-- 注意:enctype 属性必须设置为 multipart/form-data, 这样浏览器才能正确把文件发送到 web 服务器 -->
<input type="file" name="myfile">
<input type="submit" name="submit" value="Upload">
</form>
步骤2: 创建PHP脚本
在表单中设置action属性后,需要创建一个PHP脚本来处理文件上传。
PHP代码 :
<!-- 上传文件目录 -->
<?php
$uploads_dir = 'uploads/'; //设置文件上传路径
// 判断 uploads 目录是否存在
if(!is_dir($uploads_dir)){ //不存在则创建
mkdir($uploads_dir);
}
if(isset($_POST['submit'])){ //匹配提交按键名
// 检查上传文件是否合法
if(isset($_FILES['myfile']) && $_FILES['myfile']['error'] == 0){ //匹配上传文件名
$file_name = $_FILES['myfile']['name']; //取上传文件的原始名称
$file_tmp = $_FILES['myfile']['tmp_name']; //临时文件名称
$file_size = $_FILES['myfile']['size']; //上传文件大小(以字节为单位)
$file_type = $_FILES['myfile']['type']; //文件类型即 MIME
// 自定义新文件名称
$new_file_name = date('YmdHis').'_'.$file_name;
//移动上传文件的扩展名
$file_ext = strtolower(pathinfo($new_file_name, PATHINFO_EXTENSION));
// 获取允许上传的文件类型,并判断上传文件的类型是否允许
$file_allowed = array('jpg', 'jpeg', 'png', 'gif'); //定义允许上传的文件扩展名
if(in_array($file_ext, $file_allowed)){ //检测扩展名
if($file_size < 5000000){ //上传文件大小限制(以字节为单位)
// 把文件从临时目录移动到上传目录中,并使用新的文件名保存
move_uploaded_file($file_tmp, $uploads_dir.$new_file_name);
echo '上传成功!';
}
}
else{
echo '错误:上传的文件类型不允许!';
}
}
else{
echo '错误:上传文件失败!';
}
}
?>
步骤3: 执行上传
将表单上载到web服务器,在表单中选择要上传的文件并单击“上传”按钮。 即可上传文件并将其保存到web服务器上。
以上就是如何使用PHP上传一个文件到服务器的步骤。需要注意的是,上传文件时必须检查文件类型,大小和权限,并将其保存到正确的目录中。对上传的文件进行验证和检查,能够保证上传文件的安全,并减少不必要的麻烦。
