当前位置: 首页 > 编程语言 > C#

上传大文件(1GB)-ASP.net分享

时间:2023-04-10 10:53:51 C#

上传大文件(1GB)-ASP.net我需要上传至少1GB文件大小的大文件。我使用ASP.Net、C#和IIS5.1作为我的开发平台。我正在使用:HIF.PostedFile.InputStream.Read(fileBytes,0,HIF.PostedFile.ContentLength)在使用之前:File.WriteAllBytes(filePath,fileByteArray)(不会去这里,但会给出System.OutOfMemoryExceptionexception)目前我已将httpRuntime设置为:executionTimeout="999999"maxRequestLength="2097151"(主要是2GB!)useFullyQualifiedRedirectUrl="true"minFreeThreads="8"minLocalRequestFreeThreads="4"appRequestQueueLimit="5000"enableVersionHeader="true"requestLengthDisk="true"requestLengthDisk="5000"我还设置了maxAllowedContentLength="**2097151**"(猜测它仅适用于IIS7)我已将IIS连接超时更改为999,999秒。我什至不能上传4578KB的文件(Ajaz-Uploader.zip)我们有一个应用程序偶尔需要上传1和2GB的文件,所以也遇到了这个问题。经过大量研究,我的结论是我们需要实现前面提到的NeatUpload或类似的东西。另请注意,它以字节为单位,以千字节为单位。所以你的价值应该看起来更像这样:...我用谷歌搜索并找到-NeatUpload另一种解决方案是读取客户端上的字节并将它们发送到服务器,服务器保存文件。示例服务器:在命名空间-上传器,类-上传[WebMethod]publicboolWrite(StringfileName,Byte[]data){FileStreamfs=File.Open(fileName,FileMode.Open);BinaryWriterbw=newBinaryWriter(fs);bw.Write(数据);bw.关闭();返回真;}客户端:字符串文件名="C:..file.abc";Uploader.Uploadup=newUploader.Upload();FileStreamfs=File.Create(文件名);BinaryReaderbr=newBinaryReader(fs);//读取所有字节Byte[]data=br.ReadBytes();up.Write(文件名,数据);我知道这是一个老问题,但仍然没有答案。所以这就是您要做的:在您的web.config文件中,将其添加到:您可以在评论中看到它是如何工作的。在一个中你需要字节,另一个以千字节为单位。希望有所帮助。查看此博客条目以获取有关大文件上传的信息。它还有一些指向一些论坛的链接,这些论坛也可以阐明这一点。建议使用自定义HttpHandler或自定义Flash/Silverlight控件。尝试复制而不加载内存中的所有内容:publicvoidCopyFile(){Streamsource=HIF.PostedFile.InputStream;//你的源文件Streamdestination=File.OpenWrite(filePath);//你的目的地Copy(source,destination);}publicstaticlongCopy(Streamfrom,Streamto){longcopiedByteCount=0;字节[]缓冲区=新字节[20;){to.Write(缓冲区,0,len);copiedByteCount+=len;去冲();返回复制的字节数;对于IIS6.0,您可以在Metabase.xml中更改AspMaxEntityAllowed,但我认为这在IIS5.1中并不简单。此链接可能有帮助,希望它有用:http://itonlinesolutions.com/phpbb3/viewtopic.php?f=3&t=63设置maxRequestLength应该足以上传大于4mb的文件,这是HTTP请求大小的默认限制。请确保没有任何内容覆盖您的配置文件。或者,您可以检查Telerik提供的异步上传,它以2mb块上传文件,可以有效绕过ASP.NET请求大小限制。我认为你应该使用Response.TransmitFile,这种方法不会在网络服务器内存中加载文件,它会在不使用网络服务器资源的情况下流式传输文件。以上就是C#学习教程:上传大文件(1GB)-ASP.net分享的全部内容,如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——如果(Controller.ValidateFileExist()){ClearFields();Response.Clear();Response.ContentType="文本/纯文本";Response.AddHeader("content-disposition",String.Format("attachment;filename={0}","FileNAme.Ext"));Response.TransmitFile(FileNAme.Ext);响应.End();控制器.DeleteFile();}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: