我现在想把上传文件的内容全部封装在类库里面,以后就直接调用;
可是有几个问题需要解决;
一、我传递进去的是上传文件的路径和保存文件的服务器路径,需要在类库的函数中处理这个制定的文件,知道它的大小,以及保存上传HttpPostedFile myFile = UpFile.PostedFile;//UpFile为上传控件
filesize = (myFile.ContentLength / 1024).ToString() + "K";
savepath = System.Configuration.ConfigurationSettings.AppSettings["MsgFile"].ToString() + AnnexName + filetype;
myFile.SaveAs(Server.MapPath(savepath));在类库里面好像无法使用这些类的,HttpPostedFile ,Server.MapPath,怎么处理阿?知道路径以后怎么样对这个文件进行操作我也不太清楚;二、2.0里面的上传控件在超过上传文件大小后,就会出现“无法显示网页”;有什么办法可以让我可以使用程序跳出错误提示阿?
我在msdn查了一下,他说是为了安全考虑,防止进行攻击所以才会这样;那正常的开发应该怎么来实现呢?
可是有几个问题需要解决;
一、我传递进去的是上传文件的路径和保存文件的服务器路径,需要在类库的函数中处理这个制定的文件,知道它的大小,以及保存上传HttpPostedFile myFile = UpFile.PostedFile;//UpFile为上传控件
filesize = (myFile.ContentLength / 1024).ToString() + "K";
savepath = System.Configuration.ConfigurationSettings.AppSettings["MsgFile"].ToString() + AnnexName + filetype;
myFile.SaveAs(Server.MapPath(savepath));在类库里面好像无法使用这些类的,HttpPostedFile ,Server.MapPath,怎么处理阿?知道路径以后怎么样对这个文件进行操作我也不太清楚;二、2.0里面的上传控件在超过上传文件大小后,就会出现“无法显示网页”;有什么办法可以让我可以使用程序跳出错误提示阿?
我在msdn查了一下,他说是为了安全考虑,防止进行攻击所以才会这样;那正常的开发应该怎么来实现呢?
解决方案 »
- 用户名aaa登录退出后 用户名bbb登录 却还显示aaa的信息
- 谁帮我看看这错在哪里了?多谢
- 询问个基础问题,现在我获取到了当前登录的用户名,请问如何写入gridview其中一个位置呢
- 怎么提取这样的字符串12*36*2
- CrystalReportViewer1:未知的服务器标记“cr:CrystalReportViewer”
- MagicAjax+DropDownList联动的取值问题,总是默认值,郁闷啊,盼高手高高手解决!!
- 异常详细信息: System.FormatException: 输入字符串的格式不正确。
- 想通过社区为大家做点事,但是现在好像没有响应?怎样来解决社区运营?
- :请问如何读出以下XML文件里的记录信息,解决了马上加分~
- 寻求解决方法,关于页面传值到后台。来者有分,在线等待
- 根據這個功能,做一個用戶權限管理
- 初学者,一个简单的ASP.NET问题!
1、类库没有在项目中对System.Web的引用;
2、class要继承System.Web.UI.Page后才能够对Server.MapPath进行使用;
web.config里面加了就行
<httpRuntime
maxRequestLength="2097151"
executionTimeout="900"/>
一次Request请求的默认长度是4M,所以当文件超过这个大小时就会出错,maxRequestLength表示的就是这个大小,只把它改大不是办法,最好进行文件大小的检查,这是必须的,没见过什么上传文件大小不限的网站吧?呵呵
<system.web>
<httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
</system.web>
</configuration>
其中:maxRequestLength:指示 ASP.NET 支持的HTTP方式上载的最大字节数。该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。executionTimeout:指示在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。在当文件超出指定的大小时,如果浏览器中会产生 DNS 错误或者出现服务不可得到的情况,也请修改以上的配置,把配置数加大。另外,上载大文件时,还可能会收到以下错误信息: aspnet_wp.exe (PID: 1520) 被回收,因为内存消耗超过了 460 MB(可用 RAM 的百分之 60)。
如果遇到此错误信息,请增加应用程序的 Web.config 文件的 元素中 memoryLimit 属性的值。例如: <configuration>
<system.web>
<processModel memoryLimit="80"/>
</system.web>
</configuration>
我在自己的机器上测试,可以上传50M以上的文件。以上代码在Windows XP + .NET 1.0 + VS.NET2002下测试通过。