php - privoxy - 将图像上传到服务器时出现错误500



nginx 500 internal server error (1)

我使用PHP构建了一个具有库功能的CMS,您可以选择多个图像并将其上载到服务器。 为了上传图片,我使用了名为File-up的插件https://shabuninil.github.io/fileup/ ,它可以让你用ajax-requests将文件上传到服务器。 当选择多个图像时,该插件每个请求发送一(1)个图像,所以如果选择5个图像,插件会向服务器发送5个Ajax请求。 在服务器上有一个脚本,接受插件发送的图像,它验证图像,并使用move_uploaded_file函数将其移动到特定的文件夹。问题是,我得到一个500错误的插件的一些请求。 我已经尝试了不同的帖子,在这里贴出的500错误,stackoverflow.com,为了解决这个问题,但没有成功。 我想可能是服务器一次从插件得到太多的请求,所以我实现了JQuery的setTimeout()函数5秒,但仍然没有成功。

我甚至认为,也许CMS有一些错误或东西,所以我测试了CMS的co.nf放置在另一台服务器上,但在该服务器上我没有得到任何错误,一切工作正常,所以如果我是正确的问题在原始服务器上。 我出来的想法,所以,任何人都可以帮我吗? 提前致谢!

将图像放入特定文件夹(在本例中为“上载”文件夹)的功能:

// Be sure we're dealing with an upload
if (is_uploaded_file($_FILES['filedata']['tmp_name']) === false) {
    throw new \Exception('Error on upload: invalid file definition');
}

// Rename uploaded file
$uploadName = $_FILES['filedata']['name'];
$ext        = strtolower(substr($uploadName, strripos($uploadName, '.') + 1));
$filename   = round(microtime(true)) . mt_rand() . '.' . $ext;
$target_dir = "../uploads/" . $filename;

if (move_uploaded_file($_FILES['filedata']['tmp_name'], $target_dir)) {
// Save filename into db
}

ajax请求的图像及其错误:

服务器错误文件中的错误:

[Mon Nov 20 01:17:44 2017] [error] [client IP_ADDRESS ] [client IP_ADDRESS] 
ModSecurity: Warning. Match of "eq 0" against "MULTIPART_UNMATCHED_BOUNDARY" 
required. [file "/services/mod_security-rules/00_asl_zz_strict.conf"] [line 
"37"] [id "330792"] [rev "2"] [msg "Multipart parser detected a possible 
unmatched boundary. This may be an impedence mismatch attack, a broken 
application or a broken connection.  This is not a false positive.  Check 
your application or client for errors."] [severity "NOTICE"] [tag "no_ar"]  
[hostname "MY_HOST"] [uri "/MY_SITE/cms/pages/upload.php"]

你得到一个国防部安全错误,这让我怀疑你的服务器正在限制上传的大小。

默认的限制是512kb ,比现代的图像文件容易得多。

您可以使用以下方法将其提高到一个更高的限制,例如1GB:

SecResponseBodyLimit 1048576

然后,您需要重新启动服务器以使其获取更改。





server