欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Asp.Net超大文件上传问题解决

程序员文章站 2024-03-02 16:52:40
  最近涉及到用asp.net做上传功能的一个问题,因为asp.net有fileupload的上传控件,但是这个控件上传的文件大小有限,所以根本满足不了需求百度了...

  最近涉及到用asp.net做上传功能的一个问题,因为asp.net有fileupload的上传控件,但是这个控件上传的文件大小有限,所以根本满足不了需求
百度了下,很多人遇到asp.net上传超大文件的困惑,偶尔搜索发现csdn有个哥们提到这个超大文件如何实现,radupload.net2.dll并且提供了这个动态库进行处理超大文件的上传处理过程。于是就下载下来看了看,果然效果不错,不但支持吵过700m的文件上传快速,更重要的是支持多线程的上传文件。
查看源代码发现利用的控件也是fileupload的控件,但是处理的过程调用的是radupload.net2.dll处理的。
上传后文件存放到bin下面的upload文件夹下面,并且可以对上传的文件进行重新命名。

radupload.net2.dll:


1.创建一个aspx的页面。
2.创建<asp:fileupload id="fileupload1" runat="server" />。
3.创建<asp:button id="button3" runat="server" text="上传" onclick="button1_click" />
4.上传代码中调用net2.dll的动态库处理过程。
5.如果创建多个上传文件,可以多写几个<asp:fileupload id="fileupload1" runat="server" />。
6.最后单击上传按钮,执行其中处理过程。
具体过程如下

复制代码 代码如下:

 foreach (uploadedfile file in raduploadcontext.current.uploadedfiles)
            {
                string path = server.mappath(@"~/uploads");

                //如果路径不存在,则创建
                if (system.io.directory.exists(path) == false)
                {
                    system.io.directory.createdirectory(path);
                }

                //组合路径,file.getname()取得文件名
                string oldfilename = file.getname().tostring();

                //如果对上传后的文件进行重新命名,根据guid进行命名,则放开下面二行代码
                //string filetype = oldfilename.substring(oldfilename.lastindexof("."));
                //string newfilename = guid.newguid().tostring("n") + filetype;
                //path = path + "/" + file.getname().tostring();
                path = path + "/" + oldfilename;

                //保存
                file.saveas(path, true);
                string newurl = @"~/uploads/" + oldfilename;             
            }