关于.NET 上传大文件的解决办法

1.最近在解决问题的时候遇到如何将视频以及语音和图片上传到阿里云的服务器中。但是遇到一些大文件就导致无法进行上传.

2.在将图片进行上传到阿里云的时候先将文件转化为二进制文件,然后通过文件流 的形式进行上传到阿里云中。

3.但是通过传统的<input type="file"> 只能上传 4M 以内的文件。那么如何上传比较大的文件了。其实方式非常的简单。

在Web.config 修改一些配置参数以及配置项就可以了。

配置参数修改如下所示:

<system.web>
    <compilation debug="true" targetFramework="4.5.2" />
    <!--<httpRuntime targetFramework="4.5.2" />-->
    <httpRuntime targetFramework="4.5.2" executionTimeout="90" maxRequestLength="409600" useFullyQualifiedRedirectUrl="false"
minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100"/>
  </system.web>

这样就可以了。其中关于  具体的属性的意义参照一下:配置httpRuntime也可以让FileUpload上传更大的文件,不过设置太大了会因用户将大量文件传递到该服务器而导致的拒绝服务攻击(属性有说明)

<httpRuntime>

<httpRuntime useFullyQualifiedRedirectUrl="true|false"

             maxRequestLength="size in kbytes"

             executionTimeout="seconds"

             minFreeThreads="number of threads"

             minFreeLocalRequestFreeThreads="number of threads"

             appRequestQueueLimit="number of requests"

             versionHeader="version string"/>

属性

属性

选项

说明

appRequestQueueLimit

ASP.NET 将为应用程序排队的请求的最大数目。当没有足够的自由线程来处理请求时,将对请求进行排队。当队列超出了该设置中指定的限制时,将通过“503 - 服务器太忙”错误信息拒绝传入的请求。

executionTimeout

指示在被 ASP.Net 自动关闭前,允许执行请求的最大秒数。

enable

指定是否在当前的节点及子节点级别启用应用程序域。默认值为 true

   

true

指定启用应用程序域。

   

false

指定禁用应用程序域。应用程序将不会在内存中加载,任何客户端请求将导致出现错误号为 404 的错误。

idleTimeOut

   

指定应用程序域在经过多长的空闲时间后将予以关闭。默认值为 20 分钟

enableKernelModeCache

指定是否启用输出缓存。目前,该属性只有在安装 IIS 6.0 版或更高版本之后才起相应的作用。输出缓存的配置和请求的类型决定了是否对内容进行缓存。

若要对响应进行缓存,必须满足以下条件:

  • 必须通过页面指令或使用缓存 API 显式启用缓存。
  • 缓存必须具有过期策略,以便内核知道何时放弃缓存。
  • 缓存不能有任何变量标头或参数。
  • 请求不能要求进行任何身份验证。
true

指定启用缓存。

false

指定禁用缓存。

maxRequestLength

指示 ASP.NET 支持的最大文件上载大小。该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。

minFreeLocalRequestFreeThreads

ASP.NET 保持的允许执行新本地请求的自由线程的最小数目。该线程数目是为从本地主机传入的请求而保留的,以防某些请求在其处理期间发出对本地主机的子请求。这避免了可能的因递归重新进入 Web 服务器而导致的死锁。

minFreeThreads

允许执行新请求的自由线程的最小数目。ASP.NET 为要求附加线程来完成其处理的请求使这些线程保持自由状态。

useFullyQualifiedRedirectUrl

指示客户端重定向是否是完全限定的(采用 {HYPERLINK "http://server/path" } 格式,这是某些移动控件所必需的),或者指示是否代之以将相对重定向发送到客户端。

true

指定客户端重定向需要以完全限定的格式发送。这是通过自动将不是完全限定的格式的所有重定向转换为完全限定的格式来实现的。

false

指定客户端重定向不需要被自动转换为完全限定格式。false 是默认选项。

versionHeader

   

指定 ASP.NET 随每个响应所发送的版本头的值。Microsoft Visual Studio .NET 使用该属性来确定当前使用的 ASP.NET 版本。这对产品环境来说不是必需的,并且可以通过从 Web.config 或 Machine.config 移除该属性,或将该属性设置为空字符串 (versionHeader="") 来将其禁用。

时间: 2024-08-26 07:21:36

关于.NET 上传大文件的解决办法的相关文章

cgi+lighttpd上传大文件失败解决办法

问题: - 前端页面点击上传按钮,不超过30M的小文件顺利上传到板子指定位置,上传60Md的更新包,出错,http状态码413——请求实体过大 环境: - web服务器——lighttpd1.4.30 - cgi——c语言写的(未设限上传文件大小) - 前端——Vue(未设限上传文件大小) 解决办法: - 检查更改lighttpd的配置文件lighttpd.conf中两项配置: 1.server.upload-dirs:上传临时目录,默认为"/var/tmp",这个默认目录不一定有足够

win2003/win7 iis7与IIS6对无法上传大文件的解决方法

Windows 2003 Server的解决办法 Windows 2003 Server下无法上传附件,无论是文章还是软件上传都会出现:Request 对象 错误 'ASP 0104 : 的错误,请按照下面的说明一步步操作: 更改win2003的IIS 6.0对asp教程的上传文件大小为200k限制,aspx的上传程序没有影响.在IIS6.0中,默认设置是特别严格和安全的,最大只能传送 204,800 个字节,这样可以最大限度地减少因以前太宽松的超时和限制而造成的攻击.IIS 6 出于安全考虑,

如何解决nginx上传大文件的限制

通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题: 用nginx来做webserver的时,上传大文件时需要特别注意client_max_body_size这个参数,否则会中断在nginx的请求中,在php中是无法记录到访问的. 一般上传大文件流程: 首先修改php.ini文件: file_uploads on 是否允许通过HTTP上传文件的开关.默认为ON即是开 upload_tmp_dir – 文件上传至服务器上存储临时文件的地方,如果没指定

[转]通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题

转:http://blog.csdn.net/zhengwish/article/details/51602059 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题: 用nginx来做webserver的时,上传大文件时需要特别注意client_max_body_size这个参数,否则会中断在nginx的请求中,在php中是无法记录到访问的. 一般上传大文件流程: 首先修改php.ini文件: 参数 设置 说明 file_uploads on 是

WCF利用Stream上传大文件

WCF利用Stream上传大文件 转自别人的文章,学习这个例子,基本上wcf也算入门了,接口用法.系统配置都有了 本文展示了在asp.net中利用wcf的stream方式传输大文件,解决了大文件上传问题.主要是存档方便以后遇到该问题是来查阅.贴出部分代码,如果有疑惑或需要完整代码的请留言 WebForm1.aspx.cs protected void Button1_Click(object sender, EventArgs e) {             FileData file = n

IIS上传大文件

IIS7.0上传文件限制的解决方法 在 Windows7(iis7.5).Win2008(iis 7.0)和Win2003(iis 6.0) 中,默认设置是特别严格和安全的,这样可以最大限度地减少因以前太宽松的超时和限制而造成的攻击.指定 ASP 请求的实体主体中允许大小为 200,000 (IIS6为204,800) 个字节,在 iis 6.0 之前的版本中,例如:Windows XP(IIS 5.1),没有限制. 这就造成了文件上传不能超过200k,而事实上是提交数据不能超过200k,你可以

PHP上传遇到的问题-php 上传大文件主要涉及配置upload_max_filesize和post_max_size两个选项

今天在做上传的时候出现一个非常怪的问题,有时候表单提交可以获取到值,有时候就获取不到了,连普通的字段都获取不到了,苦思冥想还没解决,最后问了师傅,师傅看了说挺奇怪的,然后问我upload_max_filesize的值改了吗,我说改了啊,师傅也解决不了了.过了一会师傅问post_max_size改了吗,我说那个和上传没关系吧,师傅没理我,我还是照着自己的想法继续测试,弄了半天还是不行,最后试了师傅提的意见,成功了,原来上传是和post_max_size有关系的. 总结:php.ini配置文件中的默

php 上传大文件主要涉及配置upload_max_filesize和post_max_size两个选项

php 上传大文件主要涉及配置 upload_max_filesize 和post_max_size两个选项 今天在做上传的时候出现一个非常怪的问题,有时候表单提交可以获取到值,有时候就获取不到了,连普通的字段都获取不到了,苦思冥想还没解决,最后问了师傅, 师傅看了说挺奇怪的,然后问我 upload_max_filesize的值改了吗,我说改了啊,师傅也解决不了了.过了一会师傅问 post_max_size改了吗,我说那个和上传没关系吧, 师傅没理我,我还是照着自己的想法继续测试,弄了半天还是不

上传大文件&amp;验证码

c#如何上传大文件? 想要想上传大文件,必须在web.config文件中进行配置. 在<system.web>节点中添加如下代码即可: <httpRuntime maxRequestLength="2097151"/> 这个代码就是表示设置最大请求值,上传文件也就相当于请求.maxRequestLength单位为KB,最大值为:209715 如果不设置,默认为4096 KB (4 MB). 也就是说上传的文件最大可以上传2G以内的文件. 一般没有配置的话,默认只