关于上传文件

hy_lihuan 2007-06-25 09:06:16
我现在想把上传文件的内容全部封装在类库里面,以后就直接调用;
可是有几个问题需要解决;
一、我传递进去的是上传文件的路径和保存文件的服务器路径,需要在类库的函数中处理这个制定的文件,知道它的大小,以及保存上传

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查了一下,他说是为了安全考虑,防止进行攻击所以才会这样;那正常的开发应该怎么来实现呢?
...全文
198 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
nyzfl 2007-06-25
  • 打赏
  • 举报
回复
学习 谢谢分享
suhongwei 2007-06-25
  • 打赏
  • 举报
回复
HttpContext.Current.Server.MapPath
hy_lihuan 2007-06-25
  • 打赏
  • 举报
回复
散分了
hy_lihuan 2007-06-25
  • 打赏
  • 举报
回复
第二个问题已经解决;
web.config里面加了就行
<httpRuntime
maxRequestLength="2097151"
executionTimeout="900"/>
shuiliu_rou 2007-06-25
  • 打赏
  • 举报
回复
System Imaging 类中的 image 类可以对图片进行处理.例如生成缩略图等
artak 2007-06-25
  • 打赏
  • 举报
回复
mark
hy_lihuan 2007-06-25
  • 打赏
  • 举报
回复
第一个问题解决了;在类库里面不能对以上类进行使用主要是两点:
1、类库没有在项目中对System.Web的引用;
2、class要继承System.Web.UI.Page后才能够对Server.MapPath进行使用;
Red_angelX 2007-06-25
  • 打赏
  • 举报
回复
关注 帮顶
jimu8130 2007-06-25
  • 打赏
  • 举报
回复
以上是孟子网站里面的文章写的,对于第一个问题,我见过有人将其做成了用户控件,然后在前台建立一个fso的activxobject后,利用fso来操作得到是否存在文件,以及文件大小等信息。
jimu8130 2007-06-25
  • 打赏
  • 举报
回复
最后,需要注意的是:在保存文件时,您应该确保指定文件的完整路径(例如,"C:\MyFiles\Picture.jpg"),并确保为 ASP.NET 使用的帐户提供要存储文件的目录的写权限。上载大文件时,可使用 元素的 maxRequestLength 属性来增加文件大小的最大允许值,例如:

<configuration>
<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下测试通过。
sweig0721 2007-06-25
  • 打赏
  • 举报
回复
還是接點分吧。
sunxw18 2007-06-25
  • 打赏
  • 举报
回复
我有个上传文件的源代码,跟你要的差不多,要的话跟我发邮件sunxw18@163.com!
sky_spirit 2007-06-25
  • 打赏
  • 举报
回复
学了十几天.net,来看看,好不容易碰上个会的问题,兴奋啊,可惜已经被回答完了-_-!
一次Request请求的默认长度是4M,所以当文件超过这个大小时就会出错,maxRequestLength表示的就是这个大小,只把它改大不是办法,最好进行文件大小的检查,这是必须的,没见过什么上传文件大小不限的网站吧?呵呵

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧