当前位置: 首页 > article >正文

PHP实战:安全实现文件上传功能教程

HTML部分:
<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="userfile">
    <input type="submit" value="上传">
</form>
PHP部分:
<?php
$upload_dir = 'uploads/';
$max_size = 1024 * 1024; //1MB
$allowed_types = ['image/jpeg', 'image/png'];

if($_FILES['userfile']['error'] !== UPLOAD_ERR_OK){
    die('上传错误:'.$_FILES['userfile']['error']);
}

if($_FILES['userfile']['size'] > $max_size){
    die('文件大小超过限制');
}

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$detected_type = finfo_file($finfo, $_FILES['userfile']['tmp_name']);
if(!in_array($detected_type, $allowed_types)){
    die('不允许的文件类型');
}

$extension = pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION);
$safe_name = uniqid('file_', true).'.'.$extension;
$target_path = $upload_dir.$safe_name;

if(!move_uploaded_file($_FILES['userfile']['tmp_name'], $target_path)){
    die('文件保存失败');
}

echo '文件上传成功,保存为:'.$safe_name;
?>

另外我们在日常开发中通常会用到各种API接口,比如查询用户IP归属地,手机号归属地,天气预报,万年历等,这时我们可以直接去接口盒子https://www.apihz.cn 查找需要的API即可。接口盒子有数百个免费API,而且采用集群化服务器部署,比一般的API服务商更加稳定。

http://www.lryc.cn/news/2394079.html

相关文章:

  • 桥 接 模 式
  • 基于 Flink+Paimon+Hologres 搭建淘天集团湖仓一体数据链路
  • 多杆合一驱动城市空间治理智慧化
  • 用QT写一个车速表
  • (19)java在区块链中的应用
  • 数控技术应用理实一体化平台VR实训系统
  • C# 将HTML文档、HTML字符串转换为图片
  • 界面控件DevExpress WinForms v24.2新版亮点:富文本编辑器功能全新升级
  • 华为云Flexus+DeepSeek征文|华为云 Flexus X 加速 Dify 平台落地:高性能、低成本、强可靠性的云上选择
  • Jenkins 2.479.1安装和邮箱配置教程
  • MySQL 大战 PostgreSQL
  • DFS入门刷题c++
  • ToolsSet之:十六进制及二进制编辑运算工具
  • 服务器液冷:突破散热瓶颈,驱动算力革命的“冷静”引擎
  • 1.2 HarmonyOS NEXT分布式架构核心技术解析
  • 【Python训练营打卡】day40 @浙大疏锦行
  • MCP Server的五种主流架构:从原理到实践的深度解析
  • 跨协议协同智造新实践:DeviceNet-EtherCAT网关驱动汽车焊接装配效能跃迁
  • 在Linux上安装Docker并配置镜像加速器:从入门到实战
  • 让 Deepseek 写一个尺码计算器
  • 代码随想录算法训练营第60期第五十三天打卡
  • Nacos实战——动态 IP 黑名单过滤
  • 实验设计与分析(第6版,Montgomery)第5章析因设计引导5.7节思考题5.14 R语言解题
  • 在Ubuntu20.04上安装ROS Noetic
  • python里面导入yfinance的时候报错
  • winform LiveCharts2的使用--图表的使用
  • 【计算机网络】IPv6和NAT网络地址转换
  • flutter简单自定义跟随手指滑动的横向指示器
  • 项目日记 -Qt音乐播放器 -搜索模块
  • JavaScript 性能优化实战研讨