今天遇到一個(gè)問(wèn)題,就是“NeatUpload大文件上傳控件而導(dǎo)致Nonfile portion > 4194304 bytes錯(cuò)誤”,百度后發(fā)現(xiàn)了一個(gè)解決方法,跟大家分享下:
NeatUpload是一個(gè)開(kāi)源的大文件上傳控件,非常的強(qiáng)大,支持文件類(lèi)型過(guò)濾、上傳進(jìn)度條顯示、多文件上傳等強(qiáng)大的功能。
但部署至項(xiàng)目后,有些地方用普通的FileUpload上傳時(shí)卻發(fā)生了一個(gè)錯(cuò)誤(Nonfile portion > 4194304 bytes,文件大于默認(rèn)值4M),因如果用NeatUpload控件及需要顯示上傳進(jìn)度條的話,得在web.config中加入如下代碼:
<httpModules> <add name="UploadHttpModule" type="Brettle.Web.NeatUpload.UploadHttpModule, Brettle.Web.NeatUpload"/>
</httpModules>
這時(shí)全站都會(huì)默認(rèn)使用此httpModule,當(dāng)你使用FileUpload上傳文件時(shí),只要是超過(guò)4M(默認(rèn)的)的都不能上傳,就算你配置了<httPRuntime maxRequestLength="400000" executionTimeout="3600"/>都沒(méi)用,還是會(huì)出現(xiàn)Nonfile portion > 4194304 bytes的錯(cuò)誤的。
解決方法如下:
1、在<configuration>里面加入以下代碼:
<configSections> <sectionGroup name="system.web"> <section name="neatUpload" type="Brettle.Web.NeatUpload.ConfigSectionHandler, Brettle.Web.NeatUpload" allowLocation="true" /> </sectionGroup> </configSections>
2、在<system.web>節(jié)中插入以下代碼(此方式是全局性的,第3種為針對(duì)某頁(yè)面):
<neatUpload useHttpModule="true" maxNormalRequestLength="40960" maxRequestLength="2097151" defaultProvider="FilesystemUploadStorageProvider"> <providers> <add name="FilesystemUploadStorageProvider" type="Brettle.Web.NeatUpload.FilesystemUploadStorageProvider, Brettle.Web.NeatUpload"/> </providers> </neatUpload>
此方法是修改屬性maxNormalRequestLength的值為40960(40M),如果將useHttpModule改為false則無(wú)所謂。
3、在<configuration>里面的后面位置加入以下代碼(此方式是針對(duì)某一頁(yè)面):
<location path="UploadFile.aspx" ><!--上傳文件的頁(yè)面路徑--> <system.web> <neatUpload useHttpModule="true" /> <!--為true則代表使用neatUpload的httpModule,false為不使用--> <httpRuntime maxRequestLength="40960" executionTimeout="3600" useFullyQualifiedRedirectUrl="true" /> <!--允許最大為40M--> </system.web> </location>
neatUpload節(jié)點(diǎn)的相關(guān)屬性介紹如下:
<neatUpload useHttpModule="true or false, defaults to true" maxNormalRequestLength="up to 2097151 in KBytes, defaults to 4096" maxRequestLength="up to 2097151 in KBytes, defaults to 2097151" maxUploadRate="rate in KBytes/sec, defaults to -1 which means unlimited" postBackIDQueryParam="parameter name, defaults to NeatUpload_PostBackID" multiRequestUploadHandlerUrl="URL that handles the requests in a multi-request upload,defaults to ~/NeatUpload/MultiRequestUploadHandler.ashx" debugDirectory="directory to which debug info should be written, defaults to none" decryption="name of the SymmetricAlgorithm to use to encrypt/decrypt protected data, defaults to .NET default algorithm used by SymmetricAlgorithm.Create()" validation="name of the HashAlgorithm to use to validate protected data, defaults to .NET d
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注