私はファイルアップロードの簡単な連絡フォームを持っています。次の警告が表示されますが、このファイルが上限よりも大きいというエラーメッセージをユーザーに表示したいと考えています。はい、私はerror_reportingをオフにすると "Warning:POST Content-Length ..."というメッセージを無効にできますが、ユーザーに警告します。連絡先フォームに記入して大きなファイルをアップロードしようとするともう1つの問題が発生しました。私はsubmitを押して、満たされたすべてのファイルが空になります。それはエラーメッセージを取得し、入力フィールドを失うことはありませんどのような方法ですか?PHP警告:POSTコンテンツの長さが上限を超えています
0
A
答えて
1
ファイルをサーバーに送信する前でも、ファイルサイズが最大許容サイズを超えていることをJavascriptが警告またはユーザーに通知するので、Javascriptで最初に行うことができます。ここでは、最初にhereを試して試してみてください。
<html>
<head></head>
<body>
<input type="file" id="file_upload_1" name='file_upload_1' class="file_upload"/>
<!-- AND THEN, OTHER INPUT FORM FIELDS FOLLOW -->
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
(function($) {
$(document).ready(function(){
var fileInput = $("#file_upload_1");
var MaxAllowedSize = 2000; // 2KB
var sizeKMGB = "2KB";
fileInput.on("change", function(evt){
var objFile = $(this);
var fileSize = document.getElementById("file_upload_1").files[0].size;
console.log(fileSize);
if(fileSize > MaxAllowedSize){
// RESET THE UPLOAD TO NOTHING... SO USER CAN UPLOAD AGAIN...
var fSize = parseFloat(fileSize/1000).toFixed(2);
var sUnit = fSize + "KB";
if(fSize >= 100){
fSize = parseFloat(fileSize/(1000*1000)).toFixed(2);
sUnit = fSize + "MB";
}
objFile.val(null);
alert("Upload File-size Must not exceed " + sizeKMGB + ". \nYou tried to upload a File with about " + sUnit + ".")
}
});
});
})(jQuery);
</script>
</body>
</html>
+0
答えに感謝します! –
-1
私が行ったことは、最大ファイルサイズを確認するためのajaxスクリプトを構築したことです。したがって、の前にユーザに警告することができます。より大きなファイルをアップロードします。アップロードが失敗するよりもずっと良い経験です。
先ず、ジャバスクリプト(例ではjQueryのを使用して、しかし、それは何が必要な手段によってません):サーバー側で
var max_size = // Insert ajax code to fetch max size *in bytes* from server here.
$('form input[type="file"]').each(function() {
if ((typeof this.files != 'undefined') && this.files.length) {
total_size += this.files[0].size;
}
});
if (max_size < total_size) {
var warning = 'Maximum file size is ' + max_size + ' bytes';
return;
}
は、最大アップロードサイズは、これらの3つの値の
最小によって決定されます。
str_to_bytes
と
smallest
機能を書く
function max_size() {
return Size::smallest(
Size::str_to_bytes(ini_get('post_max_size')),
Size::str_to_bytes(ini_get('memory_limit')),
Size::str_to_bytes(ini_get('upload_max_filesize'))
);
}
は読者の課題として残されています。
+0
答えに感謝します! –
関連する問題
- 1. POSTコンテンツの長さが上限を超えていますWordpress
- 2. PHPの警告:POSTコンテンツ - nバイトの長さが行0のUnknownの3145728バイトの制限を超えています
- 3. コンテンツの修正方法 - *バイトの長さがバイト数の上限を超えています
- 4. テーマのアップロード時にPOSTコンテンツの制限が超えています
- 5. OF_packet_dataの長さがOF_IN_packetの長さを超えています
- 6. キー 'データソース'の値の長さが '128'の制限を超えています
- 7. マルチパートボディの長さの制限が16384を超えました
- 8. プロセス間通信メッセージが上限を超えています
- 9. 警告と長さが4
- 10. PHP警告:不明:入力変数が1000を超えました
- 11. java.lang.OutOfMemoryError:GCオーバヘッドの上限を超えてアンドロイドスタジオ
- 12. ソフトプライベートメモリの上限を超えました
- 13. 長さが限界を超えた場合のブロック入力
- 14. APIリクエストの上限を超えています
- 15. mysqlの列の長さが長く、utf8_unicode_ci - PHPを使用してその限界を超えないようにしていますか?
- 16. NHibernate Image Storage - バイト[長さ]の長さが、設定された長さを超えています
- 17. Google App EngineとGoogleスプレッドがソフトメモリの上限を超えています
- 18. Google Dataflow:要求ペイロードサイズが上限を超えています:10485760バイト
- 19. PDFSharp - MigraDoc:テーブル行のテキストがページ長を超えています。
- 20. ファイルサイズが2 MBを超えると、getimagesizeは警告を返します。
- 21. 上限65535バイトを超えるコンストラクタ
- 22. PHP ldap_search警告が表示されない制限に達しました
- 23. 計算コンテンツ長POST私は、例えばコンテンツの長さを計算することができる方法
- 24. ウィンドウのClangコマンドが行の制限を超えています
- 25. IDTRの制限が256を超えています
- 26. StringBuilder:StringBuilderの長さと容量がMaxCapacityを超えてもかまいません
- 27. GetBytesメソッドは、データ長を超えているが、範囲は長さ
- 28. 共有メモリサイズがsysconfig制限を超えています
- 29. SQLローダーエラー:「可変長フィールドが最大長を超えています。
- 30. cURL POST:400無効なコンテンツの長さ
「ajax」について聞いたことがありますか? 。あなたは 'ajax'を使うことができます。選択時にファイルサイズをチェックし、それをサーバーに提出しないようにしてください。また、ajaxで同じページに留まり、入力テキストを保持することができます。 api.jquery.com/jquery.ajax/ –