PHP多文件上传接口(原生)修改版本

作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主

文章目录


请在www目录下创建一个uploads文件夹

代码

<?php
$link=mysqli_connect('localhost','root','root','a');//链接数据库(数据库软件账号密码都是root.数据库是a)
//然后是指定php链接数据库的字符集
mysqli_set_charset($link,'utf8');//字符串utf8
$file=dirname(__FILE__);
$file1=str_replace('\\', '/',$file);//获取绝对路径D:/phpstudy_pro/WWW
foreach($_FILES as $file){//遍历传过来的两个及以上的文件
        $fileNum=count($file['name']);
       
            for ($i=0; $i < $fileNum; $i++) { 
				
				$file3="/uploads/".$file['name'][$i];//获取路径
				 $today = date();//获取日期
				                echo move_uploaded_file($_FILES['file']['tmp_name'][$i],$file1.$file3);
				 
				 $sql = "INSERT INTO upload(name,time,path)
				 VALUES ('{$file['name'][$i]}','{$today}','{$file3}')";//插入到数据库中
				 mysqli_query($link,$sql);//运行
				
  
            }
      
      echo json_encode(["code"=>200,"msg"=>'保存成功',"data"=>$file['name']]);//显示

        
    }

 

效果

在这里插入图片描述

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
实现最安全的文件上传需要考虑以下几个方面: 1. 文件类型过滤:只允许上传指定类型的文件,比如图片、文档、音频等,可以使用 MIME 类型或文件扩展名进行判断。 2. 文件大小限制:限制上传文件的大小,避免占用过多的服务器资源和网络带宽。 3. 防止文件覆盖:检查上传的文件名是否已经存在,如果存在则重命名或者提示用户重新上传。 4. 防止文件注入:对上传的文件进行严格的检查和过滤,避免上传恶意文件或包含恶意代码的文件。 下面是一个使用原生 PHP 实现文件上传的示例代码,包含了上述安全措施: ```php <?php // 允许上传的文件类型 $allowedTypes = ['jpg', 'jpeg', 'png', 'gif']; // 允许上传的文件大小,单位字节 $maxSize = 1024 * 1024 * 2; // 上传文件保存路径 $uploadPath = './uploads/'; if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 检查上传文件是否存在且上传成功 if (isset($_FILES['file']) && $_FILES['file']['error'] === UPLOAD_ERR_OK) { // 获取上传文件的信息 $fileName = $_FILES['file']['name']; $fileType = pathinfo($fileName, PATHINFO_EXTENSION); $fileSize = $_FILES['file']['size']; $fileTmpName = $_FILES['file']['tmp_name']; // 检查文件类型是否允许上传 if (!in_array($fileType, $allowedTypes)) { die('不允许上传该类型的文件'); } // 检查文件大小是否超出限制 if ($fileSize > $maxSize) { die('文件大小超出限制'); } // 生成新的文件名,避免文件名冲突 $newFileName = uniqid() . '.' . $fileType; // 移动上传文件到指定目录 if (move_uploaded_file($fileTmpName, $uploadPath . $newFileName)) { echo '文件上传成功'; } else { die('文件上传失败'); } } else { die('上传文件不存在或上传失败'); } } ?> ``` 上述代码中,我们通过判断上传文件的类型、大小、以及是否存在来保证文件上传的安全性。同时,我们还使用了 `uniqid()` 函数生成了一个唯一的文件名,避免了文件名冲突的问题。最后,我们通过 `move_uploaded_file()` 函数将上传的文件移动到指定的目录,确保文件上传成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贵哥的编程之路(热爱分享)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值