2010-05-30 56 views
20

爲什麼文件只能部分上傳?爲什麼只能部分上傳文件?

我正在改進我的PHP文件上傳腳本中的錯誤處理,並試圖找出如何正確處理UPLOAD_ERR_PARTIAL。

我應該提示用戶再次嘗試上傳文件,還是應該通知他們有一個更嚴重的問題,即阻止他們上傳可能合法的文件?

回答

5

爲什麼文件只能部分上傳 ?

這通常是由用戶取消上傳引起的。

我應提示用戶嘗試 重新上傳文件,或者我應該 通知他們存在被阻止 他們上傳可能 合法的文件更 嚴重的問題?

如果問題繼續與網站所有者聯繫,包括儘可能詳細的信息,您應該提示他們再試一次。

+0

我們應該如何在客戶端使用JS處理這種情況,並在服務器端使用PHP?我的意思是,如果用戶開始上傳文件,然後在文件仍在上傳時單擊頁面上的取消按鈕,我可以調用'.abort()'PHP如何接收用戶取消該信息上傳? – tonix 2016-02-21 22:15:24

24

UPLOAD_ERR_PARTIAL在文件數據後未找到MIME邊界時給出。一個可能的原因是上傳被用戶取消(按ESC等)。

我認爲足以通知用戶該文件僅部分上傳,而重試將解決該問題。

+8

+1用於說明「當文件數據後沒有找到MIME邊界」 – Seb 2011-11-24 00:20:43

+0

@Seb也完全爲此+1了。遇到了類似的問題,這個小小的附註讓我接觸到了源代碼。 :) – 2015-03-29 21:20:04

+0

在我的情況下,我忘了最後(在這種情況下)邊界的前導'--'。獲悉的經驗:-) – ninetwozero 2016-04-27 22:01:05

2

好了,文件上傳,可以通過打斷:

空間不足目的地

連接中斷

損毀的文件

錯誤的名稱

擴展名錯誤

等等

你能做的最好的是驗證和保護上載過程中有沒有前實際驗證發送文件到服務器...

我第一次做了文件上傳腳本,我用1行代碼,現在,同樣的劇本似乎是一個網頁;)

編輯(例如用於控制擴展和文件大小):

IF((

($file_up["type"] == "image/gif") || 

($file_up["type"] == "image/jpeg") || 

($file_up["type"] == "image/jpg") || 

($file_up["type"] == "image/pjpeg") || 

($file_up["type"] == "image/bmp") || 

($file_up["type"] == "image/tiff") || 

($file_up["type"] == "image/png")) && 

($file_up["size"] < 1050000)) 

{ 

    code if all ok... 


} 
+2

錯誤的擴展?有個例子嗎? – 2010-05-30 04:11:26

+0

humm ...是的,想象一下,你的輸入應該只與圖片一起工作,而用戶試圖上傳文件,如果它應該只是圖片,你應該拒絕任何其他文件擴展名(查看編輯評論下的答案... – Zuul 2010-05-30 04:38:40

+3

的問題是如何將一個文件名/擴展導致UPLOAD_ERR_PARTIAL? – webbiedave 2010-05-30 05:05:08

8

這是舊的文章,但我有UPLOAD_ERR_PARTIAL的隨機問題,並張貼我的解決方案。

的問題是,經過2/3上傳我得到UPLOAD_ERR_PARTIAL的錯誤,沒有客戶端的任何中斷。

我的問題與Keep-Alive服務器有關。

我解決它通過在PHP腳本的末尾插入上傳

header ("Connection: close"); 

,強制關閉連接。這已經解決了我的問題。

我希望有人能幫忙。

感謝這個LINK

+1

爲我工作!我花了幾個小時認爲我的腳本失敗了/ flakey似乎是它的服務器。 – Treemonkey 2013-08-23 10:33:18

+0

@Treemonkey高興能成爲有用的;-) – 2013-08-23 11:33:41

+0

這裏重複的:http://stackoverflow.com/questions/12425394/post-data-is-missing-when-posting-the-same-data-in-rapid-sequence – 2014-01-15 18:22:11

1

這可能會幫助一些人,但我有同樣的問題。 我的解決辦法是卸載中的libapache2-MOD-php5filter並與經典中的libapache2-MOD-PHP5

+1

謝謝!沒有別的爲我工作。這樣做了! – 2016-11-11 09:08:23

0

我有同樣的問題,取代它,並用包中的libapache2-MOD-php5filter有關,我去掉p和問題結束。 我希望有人能幫忙。

+1

@yantantphil看起來像一個邊緣線答案給我 – 2016-11-09 03:41:20

相關問題