国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

利用.NET的File控件上傳文件的最終解決方案(個人版)

2024-07-10 13:11:23
字體:
供稿:網(wǎng)友

最大的網(wǎng)站源碼資源下載站,

   在遍歷了csdn中所有關(guān)于上傳大文件的帖子以后,寫了這片垃圾。(:-))
  上傳大文件,有好幾種方法:
  1、思?xì)w的httpworkerrequest方法,太難,看不懂:-(
  2、利用第三方的控件 aspnetupload 要錢!!算了,咱還是喜歡免費(fèi)的。
  3、修改web.config文件,但是不能捕獲錯誤。
  4、通過ftp的方式上傳。服務(wù)器需要提供ftp服務(wù)。
  
  沒轍,只好選第三種方式,誰讓咱太蠢了呢!(太蠢了,沒有關(guān)系,要多吃魚,聽說吃魚能聰明點(diǎn)。)
  
  那就仔細(xì)專研第三種方式吧!
  
  修改webcong文件:
  <system.web>
  <httpruntime maxrequestlength="40690"
   usefullyqualifiedredirecturl="true"
   executiontimeout="6000"
   usefullyqualifiedredirecturl="false"
   minfreethreads="8"
   minlocalrequestfreethreads="4"
   apprequestqueuelimit="100"
   enableversionheader="true"
   />
  </system.web>
  
  其中與上傳有密切關(guān)系的是:
  maxrequestlength
   指示 asp.net 支持的最大文件上載大小。
   該限制可用于防止因用戶將大量文件傳遞到該服務(wù)器而導(dǎo)致的拒絕服務(wù)攻擊。
   指定的大小以 kb 為單位。
   默認(rèn)值為 4096 kb (4 mb)。
  
  executiontimeout
   指示在被 asp.net 自動關(guān)閉前,允許執(zhí)行請求的最大秒數(shù)。
   單位為秒,在上傳大的文件時把這個設(shè)的大一些。
  
  
  如果服務(wù)器內(nèi)存512m,已可上傳大小160m的文件。(沒試過,csdn上眾帖子的一致意見。)
  'www.knowsky.com
  到這里web.config的設(shè)置就已經(jīng)結(jié)束。
  可是一旦上傳文件的大小超過了這個設(shè)置的文件大小范圍就會發(fā)生如下錯誤:
  該頁無法顯示
  您要查看的頁當(dāng)前不可用。網(wǎng)站可能遇到技術(shù)問題,或者您需要調(diào)整瀏覽器設(shè)置。
  
  雖然解決不了,那也要捕獲這個錯誤啊!怎么辦呢?
  最近吃了幾條魚,想了想,由于這個錯誤是由file控件引發(fā)的前臺錯誤,所以在后臺想利用try...catch來捕獲是行不通的。
  于是想到了利用.net的錯誤捕獲頁面的機(jī)制來處理。可行哦。
  
  1、先設(shè)置web.config
   <customerrors mode="on"/>
  2、新建一個error.aspx 文件,專門用來捕獲錯誤的。
  3、在上傳文件的aspx頁面的前臺頁面里添加page指令。errorpage="uploaderror.aspx"
  4、在error.aspx中添加一些代碼來判斷錯誤信息是否是file引起的前臺錯誤。
   public class uploaderror : system.web.ui.page
   {
   private void page_load(object sender, system.eventargs e)
   {
   exception ex = server.getlasterror();
   if (ex != null)
   {
   response.redirect("../error.aspx");
   }
   else //前臺錯誤ex為空值
   {
   response.redirect("uploadexcel.aspx?err=1"); //重新跳轉(zhuǎn)到上傳頁面,加上err參數(shù)是為了顯示錯誤信息
   }
   }
  
  5、顯示錯誤提示。
   public class uploadexcel : system.web.ui.page
   {
   private void page_load(object sender, system.eventargs e)
   {
   if (request["err"] == "1")
   {
   page.registerstartupscript("budget","<script language = javascript>alert('upload file has failed ! file size is too large !')</script>");
   }
   }
   }
  
  6、搞定收工。(這魚沒有白吃啊)
  
  經(jīng)過上述修改,現(xiàn)在的上傳變成了,程序指定文件大小,如果超過,則彈出錯誤提示。
  這樣一來,就好多了,最起碼自己能接受了,跟用戶解釋也不太費(fèi)勁了。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 临泉县| 扎囊县| 郓城县| 龙岩市| 西平县| 都江堰市| 高邮市| 高要市| 栖霞市| 托里县| 平武县| 鹿邑县| 额敏县| 通城县| 北川| 新巴尔虎右旗| 集安市| 当雄县| 河北区| 兴隆县| 西城区| 德化县| 祁门县| 苗栗县| 喀什市| 巫山县| 天等县| 闻喜县| 宁阳县| 页游| 昌乐县| 射洪县| 广南县| 丹东市| 东源县| 彰化县| 同德县| 玉门市| 赣州市| 宁安市| 宽城|