2017-01-10 4 views
-1

Ich habe Base64-String eines Bildes. konvertiert es in Byte-Array & und wandelt es dann in memoryStream um. Wie kann ich dieses Bild auf den Client-Rechner herunterladen? Die Base64-Zeichenfolge oder das Bild wird nicht auf dem Server/Ordner/irgendwo gespeichert. Es wird dynamisch erstellt. Ich habe versuchtKann Image nicht auf Client-Rechner herunterladen

1) Response.ContentType = "image/png" => gibt Ausnahme obj nicht auf Instant eines Objekts festgelegt. wie dieser

Context.Response.Clear(); 
Context.Response.ClearHeaders(); 
Context.Response.AddHeader("Content-Disposition", "attachment; filename=" + registrationId + ".png"); 
Context.Response.ContentType = "image/jpeg"; 
Response.AddHeader("Content-Length", bytes.Length.ToString()); 
//Response.ContentType = "application/octet-stream"; 
Context.Response.BinaryWrite(bytes); 

2) unter Verwendung von Web-Client => gibt Ausnahme

using (WebClient client = new WebClient()) 
{ 
    client.DownloadFile(ms1.ToString(), registrationId + ".png"); 
} 

Jede andere Lösung?

+0

Wie wäre es mit [Germankiwis Antwort] (http://stackoverflow.com/a/12631127/5588347)? –

+0

Warum verwenden Sie 'Response.AddHeader (" Content-Length ", bytes.Length.ToString());' ohne 'Context.'? – GraDea

+0

Im zweiten Szenario versuchen Sie einfach, Datei zum Server herunterzuladen. Es funktioniert nicht. – GraDea

Antwort

0

Probieren Sie

Response.AddHeader("Content-Length", bytes.Length.ToString()); 

zu

Context.Response.AddHeader("Content-Length", bytes.Length.ToString()); 

ich ändern denken Sie nicht gültig Page Objekt in diesem Zusammenhang hat.

+0

@GraDea ... Fehler auf was Sie vorgeschlagen haben .. "Wert fällt nicht in den erwarteten Bereich." –

Verwandte Themen