我对C#更新鲜,我能够将文件上传到服务器的大小更小 但是当我试图上传超过5000k的大小时,它会给出一个例外。
这是我的C#代码
private void UploadFile(string filename)
{
try
{
PeopleMatrixService peopleMetrixService = new PeopleMatrixService();
String strFile = System.IO.Path.GetFileName(filename);
// TestUploader.Uploader.FileUploader srv = new TestUploader.Uploader.FileUploader();
FileInfo fInfo = new FileInfo(filename);
long numBytes = fInfo.Length;
double dLen = Convert.ToDouble(fInfo.Length / 10000000);
if (dLen < 8)
{
FileStream fStream = new FileStream(filename, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fStream);
byte[] data = br.ReadBytes((int)numBytes);
br.Close();
string sTmp = peopleMetrixService.UploadFile(data, strFile);
fStream.Close();
fStream.Dispose();
MessageBox.Show("File Upload Status: " + sTmp, "File Upload");
}
else
{
MessageBox.Show("The file selected exceeds the size limit for uploads.", "File Size");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString(), "Upload Error");
}
}
和我在webservice中的代码
[WebMethod]
public string UploadFile(byte[] f, string fileName)
{
try
{
MemoryStream ms = new MemoryStream(f);
FileStream fs = new FileStream(System.Web.Hosting.HostingEnvironment.MapPath("~/Response Attachments/") + fileName, FileMode.Create);
//FileStream fs = new FileStream(Server.MapPath("~/Response Attachments/") + fileName, FileMode.Create);
ms.WriteTo(fs);
ms.Close();
fs.Close();
fs.Dispose();
return "OK";
}
catch (Exception ex)
{
return ex.Message.ToString();
}
}
答案 0 :(得分:6)
默认情况下,maxRequestLength设置为4096(4mb),您需要在web.config文件中将其更改为更大的大小。
请参阅:http://msdn.microsoft.com/en-us/library/e1f13641(VS.80).aspx
答案 1 :(得分:3)
它是web.config中的'httpruntime'部分,例如:
<configuration>
<system.web>
<httpRuntime executionTimeout="300" maxRequestLength="20480" />
</system.web>
</configuration>
答案 2 :(得分:2)
您在web.config文件中设置的最大大小是多少?检查this。
答案 3 :(得分:0)
默认情况下,Web服务器将接受小于4MB的上传;必须更新web.config文件才能支持更大的上传。
答案 4 :(得分:0)
将其放在您的web.config
中 <system.web>
<httpRuntime executionTimeout="360" maxRequestLength="100000" />
一次启用360秒超时和100,000 Kb上传数据。
如果不起作用,请在IIS服务器上运行此命令。 (替换[IISWebsitename])
C:\Windows\System32\inetsrv>appcmd set config "[IISWebsitename]" -section:requestFiltering -requestLimits.maxAllowedContentLength:100000000 -commitpath:apphost
一次启用100,000,000字节的上传数据。