|
|
|
|
|
asp.net(c#)File控件讀取圖片小文件時沒有問題,但一旦要讀取圖片或視頻等大文件時便出錯,這是什么原因呢?最近遇到這個問題,急需解決。
代碼片段如下。
private void btnUpFiles_Click(object sender, System.EventArgs e)
{
string pathName=this.File1.PostedFile.FileName.ToString();
Response.Write(pathName);
}
很簡單,就是用File控件獲得上傳文件的文件名。然而,這兩行代碼竟然顯示錯誤。
我以為是取路徑字符串的問題,所以就先截取路徑和文件名,再截取文件的后綴名,分別保存為字符串,但是始終有錯。代碼片段如下:
string fullname=this.File1.PostedFile.FileName.ToString();//取全路徑
string firstname=fullname.Substring(0,fullname.LastIndexOf(".")+1);//取路徑和文件名,去掉文件的后綴名
Session["firstname"]=firstname;//保存在一個session中
char [] spliter={'.'};//用來分割字符串的分割符
string [] fileName=this.File1.PostedFile.FileName.Split(spliter);//把全路徑分割后的每一部分保存在數(shù)組中
Session["lastname"]=fileName[fileName.Length-1];//把數(shù)組中的最后一個元素(即后綴名)保存為一個session
Response.Redirect("test.aspx");//我想傳到這個頁面測試。
以上方法依然出錯,錯誤原因好象根本與字符串無關(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"/>
問題終于得以解決!原來確實是httpRuntime的問題。
以下是來自MSDN的解釋:
httpRuntime是配置asp.net http運行時設(shè)置,以確定如何處理對asp.net應(yīng)用程序的請求。