19

約 3 MB の巨大な文字列を POST する必要があります。URL パラメータを使用せずに PHP に送信することはできますか?

URL パラメータで送信すると、リクエストは URL のサイズ制限に達します。

どうすればこれを回避できますか? どんな手掛かり?

どうもありがとう。

実際に私はこのようにしています:

$.ajax({
 type:'POST',
.......
data:{string:3MB_string}
});

私は PHP と jQuery を使用しています。3MB の base64 文字列を次のような単純な URL で php に送信したいと思います。site.com/script.php

文字列は File Reader API の base64 イメージです

これは文字列の例ですが、これはサイズ制限に達しません。3 MB ではありません。3 MB を表示するために貼り付ける際のトラブルが少なくなります。http : //jsfiddle.net/QSyMc/

4

5 に答える 5

3

必ず POST メソッドを使用する必要があります。文字列がまだ大きすぎる場合は、php.ini ファイルをチェックして、POST パラメータの最大サイズを確認してください。

この値を変更するには、次のいずれかを実行します。

1. php.ini の値を変更する

post_max_size=20M
upload_max_filesize=20M

2. または、このコードを .htaccess ファイルに追加します

php_value post_max_size 20M
php_value upload_max_filesize 20M

どちらを使用するかは、アクセスできるものによって異なります。

于 2013-07-23T12:28:27.703 に答える
3

同様の問題に遭遇しました。クエリ文字列の長さではなく、サーバーに渡した変数の数です。php.ini は、max_input_vars フィールドに 1200 個の変数に制限を設けています。私の場合、post_max_size の量ではなく、その量を超えていました。戻ってクエリをより効率的にし、制限以下にする必要がありました。php.ini の設定を上げることもできたと思いますが、不要なクエリ パラメータを無効にすることで、より良いコードを作成することができました。

于 2015-12-07T21:27:02.063 に答える
0

これを試して:

var str = "YOUR STRING";
$.ajax({
    url: 'YOUR URL',
    type: 'POST',
    data: { mystring: str },
    success: function(result) {
        console.log(result);
    }
});
于 2013-07-23T12:28:07.230 に答える