慕容森
2019-10-17 12:52:33
在PHP上,他們有一種方法可以在上傳后限制文件大小,但不能在上傳前限制文件大小。我使用Malsup jQuery表單插件進行表單發(fā)布,它支持圖像文件發(fā)布。我想知道是否存在限制,可以設(shè)置可以通過該AJAX流將多少字節(jié)傳遞到服務(wù)器?這樣可以讓我檢查文件大小,如果文件太大,則返回錯誤。通過在客戶端執(zhí)行此操作,它可以阻止那些從Pentax拍攝10MB照片并嘗試上傳照片的新手。
3 回答

largeQ
TA貢獻2039條經(jīng)驗 獲得超8個贊
我發(fā)現(xiàn)Apache2(您可能還希望檢查Apache 1.5)可以通過在.htaccess文件中添加以下內(nèi)容來限制此操作:
LimitRequestBody 2097152
這在文件上傳時將其限制為2 MB(2 * 1024 * 1024)(如果我正確執(zhí)行了字節(jié)數(shù)學(xué)運算)。
請注意,執(zhí)行此操作時,如果超出表單發(fā)布或獲取請求的限制,則Apache錯誤日志將生成此條目:
Requested content-length of 4000107 is larger than the configured limit of 2097152
并且還將在網(wǎng)絡(luò)瀏覽器中顯示此消息:
<h1>Request Entity Too Large</h1>
因此,如果您使用諸如Malsup jQuery Form Plugin之類的東西進行AJAX表單發(fā)布,則可能會捕獲H1響應(yīng),并顯示錯誤結(jié)果。
順便說一句,返回的錯誤號是413。因此,您可以在.htaccess文件中使用偽指令,例如...
Redirect 413 413.html
...并提供更合理的錯誤結(jié)果。
添加回答
舉報
0/150
提交
取消