关于上传大文件的问题!急

时间:2021-08-18 04:08:49
以下是上传类的代码和后台。大家看看,我无论设置fileLength为多大都上传不了5M以上的文件。大家帮帮我,谢谢
namespace Wmj
{
public class MyUpload
{
private System.Web.HttpPostedFile postedFile=null;
private string savePath="";
private string extension="";
private int fileLength=0;
//显示该组件使用的参数信息
public string Help
{
  get{
string helpstring;
helpstring="<font size=3>MyUpload myUpload=new MyUpload(); //构造函数";
helpstring+="myUpload.PostedFile=file1.PostedFile;//设置要上传的文件";
helpstring+="myUpload.SavePath=\"e:\\\";//设置要上传到服务器的路径,默认c:\\";
helpstring+="myUpload.FileLength=100; //设置上传文件的最大长度,单位k,默认1k";
helpstring+="myUpload.Extension=\"doc\";设置上传文件的扩展名,默认txt";
helpstring+="label1.Text=myUpload.Upload();//开始上传,并显示上传结果</font>";
helpstring+="<font size=3 color=red>Design By WengMingJun 2001-12-12 All Right Reserved!</font>";
return helpstring;
  }
}



public System.Web.HttpPostedFile PostedFile
{
get
{
return postedFile;
}
set
{
postedFile=value;
}
}



public string SavePath
{
  get
  {
if(savePath!="") return savePath;
return "c:\\";
  }
  set
  {
savePath=value;
  }
}



public int FileLength
{
  get
  {
if(fileLength!=0) return fileLength;
return 1024;
  }
  set
  {
fileLength=value*1024;
  }
}



public string Extension
{
  get
  {
if(extension!="") return extension;
return "txt";
  }
  set
  {
extension=value;
  }
}



public string PathToName(string path)
{
int pos=path.LastIndexOf("\\");
return path.Substring(pos+1);
}



public string Upload()
{
if(PostedFile!=null)
{
try{
string fileName=PathToName(PostedFile.FileName);
if(!fileName.EndsWith(Extension)) return "You must select "+Extension+" file!";
if(PostedFile.ContentLength>FileLength) return "File too big!";
PostedFile.SaveAs(SavePath+fileName);
return "Upload File Successfully!";
}
catch(System.Exception exc)
{return exc.Message;}
}
return "Please select a file to upload!";
}
}
}



用csc /target:Library Wmj.cs 编译成dll供以后多次调用
调用举例
<%@page language="C#" runat="server"%>
<%@import namespace="Wmj"%>
<script language="C#" runat="server">
void Upload(object sender,EventArgs e)
{
MyUpload myUpload=new MyUpload();
// label1.Text=myUpload.Help;
myUpload.PostedFile=file1.PostedFile;
myUpload.SavePath="e:\\";
myUpload.FileLength=100;
label1.Text=myUpload.Upload();
}
</script>
<form enctype="multipart/form-data" runat="server">
<input type="file" id="file1" runat="server"/>
<asp:Button id="button1" Text="Upload" OnClick="Upload" runat="server"/>
<asp:Label id="label1" runat="server"/>
</form>

13 个解决方案

#1


在webconfig中修改.

<!--  maxRequestLength:设置上传文件的最大值,单位:KB。(默认是4096KB,即4M)
  executionTimeout:设置超时时间,单位:秒。(默认是90秒)
-->

   <httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="10240" executionTimeout="90" />

#2


asp.net中,对单块文件传输的最大值默认的是4m,如wj2929(*ヤRěйヤ*) 说的。因此在传输文件时,不能一次性的传输超过4M的文件。虽然可以更改webconfig中的相关值,但是如何改?如果值过大,必然造成asp页面的超时。因此最佳的方法是,在传输文件的时候,将文件分块。块的最大值可以设为3M,然后再分块传输。
同时,建议使用wse1或者wse2进行这个操作。

#3


这个能行么

#4


谢谢大家!请继续深入讨论

#5


大家请详细说明

#6


自己顶

#7


up

#8


up

#9


怎样将文件分块?

#10


split , winrar等都能将文件分块

#11


当上传大于4MB的文件时,在站点的Web.config中的system.web节点中加入 <httpRuntime maxRequestLength="1048576" executionTimeout="3600" />

#12


配置文件我改过了,最大的我上传过,为80MB的文件,已成功!

#13


怎么分块大文件啊

#1


在webconfig中修改.

<!--  maxRequestLength:设置上传文件的最大值,单位:KB。(默认是4096KB,即4M)
  executionTimeout:设置超时时间,单位:秒。(默认是90秒)
-->

   <httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="10240" executionTimeout="90" />

#2


asp.net中,对单块文件传输的最大值默认的是4m,如wj2929(*ヤRěйヤ*) 说的。因此在传输文件时,不能一次性的传输超过4M的文件。虽然可以更改webconfig中的相关值,但是如何改?如果值过大,必然造成asp页面的超时。因此最佳的方法是,在传输文件的时候,将文件分块。块的最大值可以设为3M,然后再分块传输。
同时,建议使用wse1或者wse2进行这个操作。

#3


这个能行么

#4


谢谢大家!请继续深入讨论

#5


大家请详细说明

#6


自己顶

#7


up

#8


up

#9


怎样将文件分块?

#10


split , winrar等都能将文件分块

#11


当上传大于4MB的文件时,在站点的Web.config中的system.web节点中加入 <httpRuntime maxRequestLength="1048576" executionTimeout="3600" />

#12


配置文件我改过了,最大的我上传过,为80MB的文件,已成功!

#13


怎么分块大文件啊