为什么PHP中的TinyMCE服务器端处理程序示例包含一个文件扩展名检查,如果您可以';是否仍不选择非图像?

为什么PHP中的TinyMCE服务器端处理程序示例包含一个文件扩展名检查,如果您可以';是否仍不选择非图像?,tinymce,Tinymce,有趣 我想添加逻辑来捕获非图像的上传。在文档中的PHP示例中,他们有: // Verify extension if (!in_array(strtolower(pathinfo($temp['name'], PATHINFO_EXTENSION)), array("gif", "jpg", "png"))) { header("HTTP/1.1 400 Invalid extension."); r

有趣

我想添加逻辑来捕获非图像的上传。在文档中的PHP示例中,他们有:

// Verify extension    
if (!in_array(strtolower(pathinfo($temp['name'], PATHINFO_EXTENSION)), array("gif", "jpg", "png"))) {
  header("HTTP/1.1 400 Invalid extension.");
  return;
}
所以我在服务器的后端服务器端JavaScript中添加了类似的内容

但事实证明这不是必要的。图像上载对话框(浏览或拖放)不允许您选择图像以外的任何内容


如果是这样,为什么示例会将其添加到处理程序中?

有几个原因,但我将坚持主要的2点:

  • 您可能不希望接受所有图像类型,可能您不希望用户上载.gif文件,因为在内容中看到gif图像会很难看,或者您的服务器不支持这种类型的图像
  • 使用诸如curl或GUI应用程序之类的终端命令,您可以跳过正常的浏览器上载工作流,将任何您喜欢的内容上载到服务器。如果不执行某种验证,用户可以上传任何东西,这是非常危险的,例如,他们可以上传一个.php文件,造成各种破坏

  • 好的,谢谢。这是有道理的。如果你不介意的话,我会跟进的。我用tiff进行了测试,但没有正确上传。然而,显示的错误只是“上传失败”。在返回的
    HTTP/1.1 400无效扩展名中没有提到该错误。
    是否有办法向用户显示有关失败原因的更多信息?谢谢。您可以通过编辑器的配置更改行为,请参阅了解更多详细信息。目前,我已成功使用images\u upload\u url选项,在该选项中,我编写了自己的后端服务器端脚本,将图像保存在所需位置,并使用唯一名称返回该位置,以便在编辑器的img标记中正确设置。要配置编辑器,这是否意味着我需要使用images\u upload\u handler选项?