2017-11-20 37 views
3

PHPを使用して複数の画像を選択してサーバーにアップロードできるギャラリー機能を備えたCMSを構築します。画像のアップロードには、File-upというプラグイン(https://shabuninil.github.io/fileup/)を使用しています。このプラグインを使用すると、ajax-requestsを使用してファイルをサーバーにアップロードできます。複数の画像が選択されている場合、このプラグインはリクエストごとに1つの画像を送信します。したがって、5つの画像を選択すると、プラグインは5つのajaxリクエストをサーバーに送信します。サーバー上には、プラグインによって送信されたイメージを受け取るスクリプトがあり、イメージを検証し、move_uploaded_file関数を使用して特定のフォルダに移動します。問題は何とかプラグインのリクエストに500エラーが発生することです。私はここで投稿された500のエラーについて別の投稿を試みましたが、問題を解決するために成功していませんでした。私はおそらく5秒でJqueryのsetTimeout()関数を実装したが、まだ成功していないので、おそらくサーバーがプラグインから一度に多くのリクエストを受けていたと思った。サーバーに画像をアップロード中にエラー500が発生する

私は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 
} 

Image of the ajax-requests and their errors:

エラー:

[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"] 
+0

Safariを使用している間はこれは起こりません。私はサファリの問題(永遠に今のような、愚かなリンゴ)があるので、Connection:closeは起こらず、途中で次の接続を閉じて、データを送信します。 – IncredibleHat

+1

私はサファリでそれをテストしていません。私はクロムとオペラでそれをテストしました –

+0

良いよ!データの切り詰めを引き起こしているのは何か:(それは厄介かもしれませんが)私はこのダグ・サファリ・ブラウザーでこの問題に遭遇しました...正確ではない反復エラーが発生したときにはイライラします! – IncredibleHat

答えて

1

modのセキュリティエラーが発生しています。これにより、サーバーがアップロードのサイズを制限している可能性があります。

default limit is 512kbは、現代の画像ファイルよりもはるかに簡単です。

あなたが使用してたとえば、1ギガバイトのために、上限にそれを増やすことができます:あなたは、それが変更をピックアップしてもらうために、サーバーを再起動する必要があります

SecResponseBodyLimit 1048576 

+0

このプロパティはどこで変更できますか? –

+0

これはサーバーの構成によって異なります。それらはhttpd.confに含まれていてはいけませんが、それはそれらを含めるのに便利な場所なのかもしれません。 そこから始めれば、最低でもそこにインポート/必要があるはずです。あるいは、サーバの設定ファイルを使ってgrepを試みてください。 – Bricky

関連する問題