0

で作成した画像ドロップ場所がいくつかありますhtml5。画像が解析されてデータに変換される (そして でエンコードされるbase64) と、そのデータを取得し、post 経由で php ファイルに送信します。

localhost では、そのbase64文字列は php ファイルで完全に受信されます。ただし、サーバーに移動すると、画像の前処理とbase64サーバーへの送信の両方が機能します(ヘッダーを読み取ります)が、phpファイルにある場合、そのbase64文字列はもう存在しません。不足しているものはありますか?

追加情報:

  • 文字列を URL エンコードしません。そうしないとローカルで機能し、サーバーがまだデータを取得できないためbase64です。
  • 私は超えていませんpost_max_size(8M私の場合、まだbase64文字列と他のデータの重みは約50kb)

ニュース速報

600kbのデータをアップロードしようとしました。サーバーはこれを要求します:

<html><head>
<title>413 Request Entity Too Large</title>
</head><body>
<h1>Request Entity Too Large</h1>
The requested resource<br />/altmail/admin/calls/ajax.previewnewsletter.php<br />
does not allow request data with POST requests, or the amount of data provided in
the request exceeds the capacity limit.
</body></html>

繰り返しpost_max_sizeますが、十分な大きさです。

速報2

反対に、38x38、220bytes の写真をアップロードしたら、正しくアップロードされました。

4

2 に答える 2

2

Apacheリクエストのサイズ制限を確認してください。

http://httpd.apache.org/docs/2.2/mod/core.html#LimitRequestFieldSize

HTTPに関しては、すべてのサイズに制限があるため、ここで何かが機能し、そこで機能しない場合は、そこでサイズを大きくしてください。;)

于 2012-10-28T18:27:26.953 に答える
0

base64データをファイルに保存していますか? その場合、フォルダーが「書き込み」用にマークされていない可能性がある場合は、それを確認してください。

$_POSTLocalhost でグローバル変数を使用しているか、使用しています。Globalを使用している場合は、 に変更し$_POSTます。

RAW を使用している場合は、次のように変数を使用します。 $_GLOBALS['HTTP_RAW_POST_DATA']

于 2012-10-26T17:15:11.700 に答える