2009-03-25 3 views
1

Ich bin ein frischer C#, ich bin in der Lage, eine Datei auf den Server mit weniger Größe hochladen, aber wenn ich versuche, eine Größe von mehr als 5000k hochladen gibt es eine Ausnahme.Kann keine Zip-Datei von mehr als 5000 k Größe hochladen

Hier ist mein C# -Code

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"); 
    } 
} 

und meinen Code in 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(); 
    } 
} 
+1

Abgesehen von den Größenbeschränkungen sollten Sie "using" -Anweisungen für alle diese Streams verwenden - andernfalls werden sie bei einem Fehler nicht geschlossen. –

+0

Schreiben Sie niemals etwas, das Ihnen eine Ausnahme gibt, ohne zu sagen, was die Ausnahme ist. –

Antwort

2

Was ist die maximale Größe, die Sie in Ihrer web.config-Datei festgelegt haben? Überprüfen Sie this.

3

Es ist das ‚Httpruntime‘ Teil in Ihrer web.config, zB:

<configuration> 
    <system.web> 
    <httpRuntime executionTimeout="300" maxRequestLength="20480" /> 
    </system.web> 
</configuration> 
0

Standardmäßig wird ein Web-Server akzeptiert Uploads kleiner als 4 MB groß; Die Datei web.config muss aktualisiert werden, um größere Uploads zu unterstützen.

0

Dieses in Ihrem web.config

<system.web> 
    <httpRuntime executionTimeout="360" maxRequestLength="100000" /> 

, die gleichzeitig ein 360-Sekunden-Timeout und 100.000 Kb von Upload-Daten ermöglicht.

Wenn das nicht funktioniert, führen Sie diesen Befehl auf Ihrem IIS-Server aus. (Ersetzen [IISWebsitename])

C:\Windows\System32\inetsrv>appcmd set config "[IISWebsitename]" -section:requestFiltering -requestLimits.maxAllowedContentLength:100000000 -commitpath:apphost 

das zu einer Zeit 100.000.000 Bytes Upload-Daten ermöglicht.

Verwandte Themen