2012-11-10 73 views
3

我使用cherrypy設置了一個服務器,可以上傳文件。但是,如果文件超過特定大小,我想防止文件被上傳。我搜索了一下,但無法找到答案。有沒有辦法通過cherrypy或一般來實現?防止上傳大小超過某個限制的文件

+1

這取決於您的意思*預防* - 您無法阻止網絡瀏覽器發送您的數據。但是,您可以將表單中的標誌提供給瀏覽器提示,並拒絕以特定大小發送給您的數據,這些數據必須作爲軟件的一部分來完成。 –

+1

[This](https://groups.google.com/forum/?fromgroups=#!topic/cherrypy-users/xGvxBGgQ90k)鏈接似乎與您的問題有關。 – Bakuriu

+0

@Lattyware我基本上希望服務器拒絕數據 – Cemre

回答

3

cherrypy._cpserver.Server.max_request_body_size可能是你想要的。

在HTTP客戶端上傳文件之前,在HTTP標頭中,他們必須指定其郵件正文的大小。基於此,您可以立即拒絕HTTP 413 請求實體太大錯誤消息的上傳嘗試。

可以通過說一定數量然後再上傳來繞過這個問題 - 但是大多數服務器都足夠聰明,當它們達到他們打算接受客戶端的最大限度時停止閱讀。

不幸的是,這並不總是這樣,因爲還有一種稱爲'分塊編碼'的HTTP上傳方法,其中客戶端(或服務器,取決於它將以何種方式進行)不需要宣傳大小他們的上傳。大多數人在服務器端看到這是將數據流式傳輸到客戶端的一種方式。

+0

非常感謝! – Cemre

相關問題