|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
c++是语言,其实C++和java的应用范围根本就不一样的。在java应用的领域内,c++是不合适的。所以微软才搞了C#和Java对抗。团体版|办理|控件|上传在遍历了csdn中一切关于上传年夜文件的帖子今后,写了这片渣滓。(:-))
上传年夜文件,有好几种办法:
1、思回的HttpWorkerRequest办法,太难,看不懂:-(
2、使用第三方的控件AspNetUpload要钱!!算了,咱仍是喜好收费的。
3、修正web.config文件,可是不克不及捕捉毛病。
4、经由过程ftp的体例上传。服务器必要供应ftp服务。
没辙,只好选第三种体例,谁让咱太蠢了呢!(太蠢了,没有干系,要多吃鱼,传闻吃鱼能伶俐点。)
那就细心专研第三种体例吧!
修正Webcong文件:
<system.web>
<httpRuntimemaxRequestLength="40690"
useFullyQualifiedRedirectUrl="true"
executionTimeout="6000"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100"
enableVersionHeader="true"
/>
</system.web>
个中与上传有亲切干系的是:
maxRequestLength
唆使ASP.NET撑持的最年夜文件上载巨细。
该限定可用于避免因用户将大批文件传送到该服务器而招致的回绝服务打击。
指定的巨细以KB为单元。
默许值为4096KB(4MB)。
executionTimeout
唆使在被ASP.NET主动封闭前,同意实行哀求的最年夜秒数。
单元为秒,在上传年夜的文件时把这个设的年夜一些。
假如服务器内存512M,已可上传巨细160M的文件。(没试过,csdn上众帖子的分歧定见。)
www.ckuyun.com
到这里web.config的设置就已停止。
但是一旦上传文件的巨细凌驾了这个设置的文件巨细局限就会产生以下毛病:
该页没法显现
您要检察的页以后不成用。网站大概碰到手艺成绩,大概您必要调剂扫瞄器设置。
固然办理不了,那也要捕捉这个毛病啊!怎样办呢?
比来吃了几条鱼,想了想,因为这个毛病是由file控件激发的前台毛病,以是在背景想使用try...catch来捕捉是行欠亨的。
因而想到了使用.NET的毛病捕捉页面的机制来处置。可行哦。
1、先设置web.config
<customErrorsmode="On"/>
2、新建一个error.aspx文件,专门用来捕捉毛病的。
3、在上传文件的aspx页面的前台页面里增加page指令。ErrorPage="UploadError.aspx"
4、在error.aspx中增加一些代码来判别毛病信息是不是是file引发的前台毛病。
publicclassUploadError:System.Web.UI.Page
{
privatevoidPage_Load(objectsender,System.EventArgse)
{
Exceptionex=Server.GetLastError();
if(ex!=null)
{
Response.Redirect("../error.aspx");
}
else//前台毛病ex为空值
{
Response.Redirect("uploadexcel.aspx?err=1");//从头跳转到上传页面,加上err参数是为了显现毛病信息
}
}
5、显现毛病提醒。
publicclassuploadexcel:System.Web.UI.Page
{
privatevoidPage_Load(objectsender,System.EventArgse)
{
if(Request["err"]=="1")
{
Page.RegisterStartupScript("budget","<scriptlanguage=javascript>alert(Uploadfilehasfailed!Filesizeistoolarge!)</script>");
}
}
}
6、弄定出工。(这鱼没有白吃啊)
经由上述修正,如今的上传酿成了,程序指定文件巨细,假如凌驾,则弹堕落误提醒。
如许一来,就很多多少了,最最少本人能承受了,跟用户注释也不太费力了。因为二次编译器太复杂,那么建议只是在安装程序的时候编译一次,而不类似java那样运行就编译。并且我觉得,一次痛苦,总比多次低效率要舒服多了。 |
|