|
|
|
|
|
asp.net(c#)File控件讀取圖片小文件時(shí)沒有問題,但一旦要讀取圖片或視頻等大文件時(shí)便出錯(cuò),這是什么原因呢?最近遇到這個(gè)問題,急需解決。
代碼片段如下。
private void btnUpFiles_Click(object sender, System.EventArgs e)
{
string pathName=this.File1.PostedFile.FileName.ToString();
Response.Write(pathName);
}
很簡(jiǎn)單,就是用File控件獲得上傳文件的文件名。然而,這兩行代碼竟然顯示錯(cuò)誤。
我以為是取路徑字符串的問題,所以就先截取路徑和文件名,再截取文件的后綴名,分別保存為字符串,但是始終有錯(cuò)。代碼片段如下:
string fullname=this.File1.PostedFile.FileName.ToString();//取全路徑
string firstname=fullname.Substring(0,fullname.LastIndexOf(".")+1);//取路徑和文件名,去掉文件的后綴名
Session["firstname"]=firstname;//保存在一個(gè)session中
char [] spliter={'.'};//用來(lái)分割字符串的分割符
string [] fileName=this.File1.PostedFile.FileName.Split(spliter);//把全路徑分割后的每一部分保存在數(shù)組中
Session["lastname"]=fileName[fileName.Length-1];//把數(shù)組中的最后一個(gè)元素(即后綴名)保存為一個(gè)session
Response.Redirect("test.aspx");//我想傳到這個(gè)頁(yè)面測(cè)試。
以上方法依然出錯(cuò),錯(cuò)誤原因好象根本與字符串無(wú)關(guān)。
查了下相關(guān)資料,有網(wǎng)友提到是 httpRuntime 的問題。
根據(jù)網(wǎng)友的意見,在 web.config 中的<system.web></system.web>
內(nèi)加入如下代碼:
<httpRuntime
executionTimeout="600"
maxRequestLength="951200"
useFullyQualifiedRedirectUrl="true"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100"
enableVersionHeader="true"/>
問題終于得以解決!原來(lái)確實(shí)是httpRuntime的問題。
以下是來(lái)自MSDN的解釋:
httpRuntime是配置asp.net http運(yùn)行時(shí)設(shè)置,以確定如何處理對(duì)asp.net應(yīng)用程序的請(qǐng)求。