PHP 上传文件代码示例:安全高效的图片和文档上传
以下是一个简单的 PHP 上传代码示例,用于将文件上传到服务器并进行验证。
HTML 文件:
<form action='upload.php' method='post' enctype='multipart/form-data'>
<input type='file' name='file'>
<input type='submit' value='Upload'>
</form>
PHP 文件 (upload.php):
<?php
if(isset($_FILES['file'])) {
$file = $_FILES['file'];
// 获取文件信息
$fileName = $file['name'];
$fileTmpName = $file['tmp_name'];
$fileSize = $file['size'];
$fileError = $file['error'];
$fileType = $file['type'];
// 获取文件扩展名
$fileExt = explode('.', $fileName);
$fileActualExt = strtolower(end($fileExt));
// 允许的文件类型
$allowed = array('jpg', 'jpeg', 'png', 'pdf');
if(in_array($fileActualExt, $allowed)) {
if($fileError === 0) {
if($fileSize < 5000000) {
// 生成文件名,确保唯一性
$fileNameNew = uniqid('', true).'.'.$fileActualExt;
// 文件上传路径
$fileDestination = 'uploads/'.$fileNameNew;
// 将文件从临时目录移动到上传目录
move_uploaded_file($fileTmpName, $fileDestination);
echo '文件上传成功!';
} else {
echo '文件太大!';
}
} else {
echo '上传文件出错!';
}
} else {
echo '不支持此文件类型!';
}
}
?>
**注意:**为了确保文件上传的安全性,必须进行一些验证和安全措施,例如确保上传的文件是允许的类型、大小不超过限制、检查文件名是否唯一等。
安全提示:
- 文件类型验证: 只允许上传特定类型的文件,以防止恶意代码的上传。
- 文件大小限制: 设置最大文件大小限制,避免服务器资源占用过大。
- 文件名唯一性: 使用唯一的文件名,防止覆盖已存在的文件。
- 文件路径验证: 确保上传的文件路径是安全的,防止文件上传到意想不到的目录。
- 文件内容验证: 对上传的文件内容进行安全检查,以防止恶意代码的上传。
通过遵循这些安全措施,你可以确保文件上传过程的安全和可靠性。
原文地址: https://www.cveoy.top/t/topic/nETv 著作权归作者所有。请勿转载和采集!