PHPMailer 附件类型和大小限制

2023-12-03

我有一个表单,我正在使用 PHPMailer 将该表单中的数据发送到我的电子邮件。用户也可以发送附件,但我有一个问题:如何使 PHPMailer 拒绝大于 2Mb 的附件并仅允许 iamge 附件(不允许其他类型的文档)?

这是我使用 PHPMailer 来添加多个电子邮件附件的代码:

foreach(array_keys($_FILES['fileAttach']['name']) as $key) {

   $source = $_FILES['fileAttach']['tmp_name'][$key]; 
   $filename = $_FILES['fileAttach']['name'][$key]; 

   $mail->AddAttachment($source, $filename);

}

您可以使用检查文件大小filesize()以及使用的类型mime_content_type().

结果代码可能如下所示:

$maxsize = 2 * 1024 * 1024; // 2 MB
$types = array('image/png', 'image/jpeg', 'image/gif'); // allowed mime-types

if(filesize($filename) < $maxsize && in_array(mime_content_type($filename),$types)){
  $mail->AddAttachment($source, $filename);
}

EDIT:PHPMailer 没有内置的这些破解功能 - 正如您从源代码中看到的那样,它仅在添加附件时检查文件是否存在:

if ( !@is_file($path) ) {
  throw new phpmailerException($this->Lang('file_access') . $path, self::STOP_CONTINUE);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHPMailer 附件类型和大小限制 的相关文章

  • 带单引号的 XPATH 查询[重复]

    这个问题在这里已经有答案了 有人知道如何解决这个问题吗 单引号让我陷入困境 nodes xml gt xpath item contains catalog Billy s Blogs title 我尝试以各种方式逃避它 但都抛出错误 no
  • snappy wkhtmltopdf 包装器将生成的 html 文件发送到浏览器

    我像鼹鼠一样用谷歌搜索 但找不到正确的方法 我正在使用 WKHTMLTOPDF Wrapper Snappy 创建 PDF 如何将使用generateFromHtml方法生成的pdf直接发送到浏览器 这就是我想做的 header Conte
  • php - 致命错误:调用 AppServ 中未定义的函数 mcrypt_get_iv_size()

    当我通过以下方式使用 mcrypt get iv size 函数时发现一个问题AppServ https www appserv org 我尝试寻找与解决问题相关的主题 但是 我尝试将 libmcrypt dll 下载到 symtem32
  • CodeIgniter加入选择为

    我的数据库中有 2 个表需要加入 一张表是 artikelen 表 另一张表是 Collections 表 我目前有 this gt db gt select this gt db gt from collecties this gt db
  • 将 int 转换为 float/double [重复]

    这个问题在这里已经有答案了 当我想要转换时遇到了麻烦integer价值观float 带点的数字 a 7200 b a 3600 echo b 2 b floatval b echo b 2 但它应该回响2 0 or 2 00 我也尝试过se
  • 如何在 Yii2 应用程序中显示多个选择下拉列表中的选定值?

    我正在研究 Yii2 我正在使用这样的自定义数组创建多个选择下拉菜单 在控制器文件中 all groups Groups find gt where group created by id gt orwhere new Expression
  • AJAX 安全问题

    我希望能够解决一些关于 AJAX 安全性的问题 这是我试图理解的一个场景 假设我正在使用 AJAX 向页面请求一些半敏感材料 例如 我将把用户的 ID 传递给一个 php 文件 并返回一些关于他们自己的信息 现在 是什么阻止人们模拟此 Ja
  • 不区分大小写的 array_unique

    我正在尝试编写几行代码来创建一个不区分大小写的数组唯一类型函数 这是我到目前为止所拥有的 foreach topics as value lvalue strtolower value uvalue strtolower value if
  • 将我的 Laravel 连接到外部数据库

    如何将 Laravel 连接到外部数据库 示例 我的本地计算机上有一个 Laravel 它在 xampp 上运行 我希望它连接到云服务器数据库 打开 env文件并编辑它 只需设置正确的外部数据库凭据 DB CONNECTION mysql
  • Chart.js - 使用 mysql 和 php 从数据库获取数据

    我正在尝试将静态数据转换为使用数据库结果 我将使用MySQL and PHP 示例代码 var randomScalingFactor function return Math round Math random 100 var lineC
  • Symfony 4 生产模式错误处理页面内存耗尽

    我将我的项目设置为prod模式在 env除了自定义错误页面之外的所有内容似乎都有效 我将此作为我的 404 树枝模板 templates bundles TwigBundle Exception error404 html twig inc
  • websockets 如何处理同一浏览器的两个选项卡

    I have 1 个 PHP 服务器 提供 http 请求 和 1 node js 发布更新的数据消息 每个连接都带有 websocket php 服务器设置其 cookie 在一个浏览器中 此 cookie 可在所有选项卡中使用 当浏览器
  • 一次用 \r\n & \n & \r 分解字符串? [复制]

    这个问题在这里已经有答案了 我想按行分割字符串 但我希望它基于所有主要使用的换行符 n r n r 并返回一个包含每一行的数组 您可以使用正则表达式和preg split http php net preg split反而 lines pr
  • 即使在双引号内或使用 PHP_EOL,PHP echo 也不打印换行符

    这是一张照片剪辑 我认为它很清楚 这真让我抓狂 我似乎无法让 php 在我的本地主机 使用 xampp 或在线 PHP 解释器上打印换行符 如果你想在 php 中使用 HTML 标签 试试这个 echo dkljaks aalksja kl
  • PHP 使用主键和辅助键对多维数组进行排序[重复]

    这个问题在这里已经有答案了 如何按主键和辅助键对多维数组进行排序 例如 假设有以下数组 result array result 0 prio 1 result 0 date 2010 02 28 result 0 post February
  • Laravel 5 命名约定

    我对 Laravel 约定有点困惑 因为我是这个框架的新手 我正在关注 Jeffrey Way 他使用的 Laracasts 视频Plural对于控制器名称 E g 页面控制器 卡片控制器 帖子控制器 但如果我参考官方文档Laravel g
  • 检查字符串是否编码为 UTF-8

    function seems utf8 str length strlen str for i 0 i lt length i c ord str i if c lt 0x80 n 0 0bbbbbbb elseif c 0xE0 0xC0
  • MySQL如何从多个表中获取数据

    我正在寻找 php MySQL jquery 的帮助 我有2张桌子 table1表 1 有 4 列 id 标题 desc thumb img tabel2表 2 有 3 列 id 表 id img 我只想将 2 个表与 get QS 的值进
  • WordPress 子主题包括包含文件

    我在一家WordPress使用 AMPPS 作为本地主机在我的本地计算机上进行设置 使用 Delta 主题 我创建了一个子主题 delta2 child 初始设置效果很好 但是 我需要更改包含文件夹中名为 home slider php 的
  • mysql_query 保留返回时在表中创建的数据类型?

    我在mysql中有一个表 CREATE TABLE user id INT name VARCHAR 250 我查询表 result mysql query SELECT id name FROM user 我收集结果 while row

随机推荐

  • ((void *) -1) 是有效地址吗?

    逐字来自Linux man shmat 返回值 出错时 void 1 返回 并且errno设置以指示错误原因 POSIX tells the same using a slightly different wording 是否有任何强制性规
  • 如何增加 Visual Studio C++ 中的内存限制

    需要帮助 在 Windows Visual Studio 上运行 C 代码时 我遇到了问题 当我在 Linux 环境中运行该代码时 我可以动态分配的内存没有限制 直到 RAM 中可用的大小 但在 VS Compiler 上 它不允许我创建超
  • Reactjs firebase 将字符串转换为地图

    在我的reactjs应用程序中 我创建了一个数组步骤 用户可以在其中添加准备食谱的步骤 并将其存储在firebase中 我的问题是步骤直接作为字符串存储在数组中 我想要的是它们存储在地图内 有人可以告诉我该怎么做吗 我希望他们成为这样的人
  • Bash 提示符以及最后的退出代码

    我一直在尝试自定义我的 Bash 提示符 使其看起来像 feralin localhost 与颜色 我设法获得恒定的颜色 每次看到提示时的颜色相同 但如果最后一个命令具有非零退出状态 我希望用户名 feralin 显示为红色 而不是绿色 我
  • 如何在团队城市中的构建配置步骤之间传递参数?

    我是团队城市的新手 我刚刚开始使用现有的团队城市配置 我需要将构建配置 01 构建服务安装程序 中生成的构建号 例如 7 6 0 4 传递到另一个构建配置 03 部署安装程序 内部版本号是在运行时生成的 因此每次构建都会发生变化 如何将此内
  • runAllManagedModulesForAllRequests = "true" 在 IIS7 中终止 Windows 身份验证

    我们在临时服务器上为客户设置了 Windows 身份验证 以帮助防止 Google 为我们的临时 URL 编制索引 我们最近发现我们的一个网站似乎忽略了我们的 IIS 设置 禁用匿名身份验证 启用 Windows 身份验证 我们最终发现 删
  • TransformException:错误:任务“:app:transformClassesWithDexForDebug”执行失败

    在布局中将列表视图转换为回收器视图并将适配器从基本适配器更改为回收器视图适配器后 我收到此错误 Error Execution failed for task app transformClassesWithDexForDebug com
  • 使用 Azure ACS 2.0 保护 WCF 4.5 服务 [重复]

    这个问题在这里已经有答案了 如何使用 Azure ACS 2 0 保护我的 WCF 4 5 服务 这是一个基本教程 具有联合身份验证的 WCF SOAP 服务然后您可以在此处查看 Dominick Baier 和 Brock Allen 的
  • 无法在 AFNetworking 2 中使用自签名证书

    我将 Apache Server 使用的 cer 证书放在 Xcode 项目中 当应用程序尝试与服务器通信时 我在 Xcode 中收到此错误 Assertion failure in id AFPublicKeyForCertificate
  • GTLServiceYouTubeexecuteQuery 回调未调用

    GTL服务YouTubeexecuteQuery当我在后台线程中执行回调时 不会调用回调 视频不会上传 当我在主线程中执行它时 它工作正常 我得到回调并且视频也上传 我可以通过强制解决这个问题executeQuery在主线程中运行 但这会影
  • 何时引发 HttpStatusCodeException 异常?

    当我使用下面的代码时 会得到什么情况HttpStatusCodeException例外 ResponseEntity response restTemplate exchange builder build encode toUri Htt
  • CSS 动画适用于 Chrome,但不适用于 Safari

    我不明白这是怎么回事 我正在更新一个仍然使用选取框标签的网站 因此我用更平滑的 尽管仍然是选取框 CSS 动画替换 问题是它在 chrome 和 firefox 中工作正常 但在 safari 中不一致 有时加载 有时不加载 通过网站上的链
  • Linux 中的 PATH 环境变量

    我想知道Linux操作系统给出的标准环境变量 如PATH HOME 是如何自动设置的 这些是从哪些文件读取的 当特定用户登录时 应该有一些文件可以设置这些变量 我想在 cnicutar 已经提到的内容上添加更多细节 环境变量包括PATH c
  • 如何为嵌套状态创建 redux-persist 黑名单?

    这是我的代码persistConfig and store 我想补充一下blacklist for tracking 但不适用于所有跟踪状态 而仅适用于tracking checkingOut tracking checkingIn and
  • 具有清单版本 2 的 CORS Chrome 扩展

    编写 google chrome 扩展时可以使用 CORS 吗 我看到了这个 http developer chrome com extensions contentSecurityPolicy html 我尝试将其插入清单中 conten
  • 在 Snakemake HTML 报告中包含参数和源代码

    我想在我的html报告中包含shell命令以及snakemake规则的外部脚本的源代码 我看到人们在RULE序列的表中包含这些 下面的示例是文档中基本示例的一部分 https snakemake readthedocs io en stab
  • 从每个组件捕获鼠标事件

    我的 WinForm C 应用程序上的 MouseEvents 存在问题 我想要得到all鼠标单击我的应用程序 但我不想在每个子组件中放置一个侦听器 也不使用 Windows 鼠标挂钩 在 Flash 上 我可以在舞台上放置一个侦听器来获取
  • 更改命令面板的键绑定

    如何更改 Visual Studio Code 中命令面板的键绑定 它没有出现在键盘快捷键中 并且一般情况下和特定情况下的互联网搜索都没有提供答案 我找不到它的原因是因为它在键盘快捷键中显示为 显示所有命令 而不是 命令调色板
  • 使用 jython 获取环境(windows 或 unix)

    如何确定环境是windows还是unix 我想执行类似的代码 如下所示 请建议 import os if os getenv windows os system cmd c if os getenv unix os system sh sh
  • PHPMailer 附件类型和大小限制

    我有一个表单 我正在使用 PHPMailer 将该表单中的数据发送到我的电子邮件 用户也可以发送附件 但我有一个问题 如何使 PHPMailer 拒绝大于 2Mb 的附件并仅允许 iamge 附件 不允许其他类型的文档 这是我使用 PHPM