【问题标题】:How to rename filename before submitting form [duplicate]如何在提交表单之前重命名文件名[重复]
【发布时间】:2016-11-29 12:18:58
【问题描述】:

如何在将表单提交到 php 页面之前重命名文件名,因为如果我上传带有单引号文件名的图像,服务器会抛出 500 内部错误

所以我想在前端使用 jquery 重命名文件名

例子:

goo'gle.jpg to google.jpg

请帮我解决这个问题或任何建议?

提前致谢

【问题讨论】:

  • 给我们看看你的代码!!!
  • 上传单引号时出现此错误 ModSecurity: Access denied with code 44 (phase 2).需要匹配“eq 0”与“MULTIPART_STRICT_ERROR”。
  • 你做不到。您的问题出在服务器代码上,因此请解决此问题。链接(重复)问题解释了原因。
  • 只需重命名您上传的文件。或(通过注释行“SecRule MULTIPART_STRICT_ERROR”!@eq 0“\”或通过 .htaccess 文件禁用 /etc/{path}/mod_security.conf 中的此安全规则 - 完全不推荐)此错误是由 mod_security 阻塞引起的潜在的恶意上传。虽然它可能完全无害,但 mod_security 无法知道它是否无害,并且内容可能包含特殊字符,例如文件名中的单引号或双引号,攻击者经常使用该字符将恶意脚本注入网站。

标签: php jquery forms internal-server-error


【解决方案1】:

检查这一行:

move_uploaded_file($tmp_name, "$uploads_dir/$name");

这里$name是你的文件名,你可以把你的逻辑创建一个新的名字,然后上传那个名字的文件。

【讨论】:

  • 我只想在前端使用 jquery 而不是 php
  • 你为什么要这样?
  • 我在生产实例中上传带单引号的文件时遇到此错误:ModSecurity: Access denied with code 44(阶段 2)。需要匹配“eq 0”与“MULTIPART_STRICT_ERROR”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-24
相关资源
最近更新 更多