2017-02-08 14 views
0

Ich habe eine Bilddatei in Canvas-Element, die ich in Code hinten in asp.net bekommen. Jetzt möchte ich es in einem Ordner in meinem Projekt speichern, aber Datei-Stream speichert es immer auf c-Laufwerk. Was mache ich?Datei-Stream-Datei speichern

[WebMethod()] 
public void SaveUser(string imageData) 
{ 
    //Create image to local machine. 
    string fileNameWitPath = path + "4200020789506" + ".png"; 

    using (FileStream fs = new FileStream(fileNameWitPath, FileMode.Create)) 
    { 
     using (BinaryWriter bw = new BinaryWriter(fs)) 
     { 
      byte[] data = Convert.FromBase64String(imageData); 
      bw.Write(data); 
      bw.Close(); 
     } 
    } 
    // Save fileNameWitPath variable to Database. 
} 
+0

Hat 'path' einen Wert? –

+0

Ja Pfad hat einen Wert, der auf C: \ Demo Ordner zeigt – user3132148

+0

Ist es 'C: \ Demo' oder' C: \ Demo \ '? Das könnte der Grund sein, warum Sie direkt in C speichern: –

Antwort

0

Hier ist, was ich tue, und es funktioniert gut. Für Sie, filePath/filename = fileNameWitPath. Tun Sie dies für jede Datei, die Sie haben. Hoffe es funktioniert für dich. Wenn Sie weitere Informationen benötigen, wäre ich froh zu helfen.

using (var stream = File.Create(filePath + filename)) 
{ 
     attachment.ContentObject.DecodeTo(stream, cancel.Token); 
} 
1

Ich kann nur Ihre path Variable auf Ihr C vorstellen: Laufwerk \.

Sie müssen den Pfad-Variable gleich dem Standort angeben Sie zum Beispiel wollen:

public void SaveUser(string imageData) 
    { 
     path = @"C:\YourCustomFolder\"; // your path needs to point to the Directory you want to save 
     //Create image to local machine. 
     string fileNameWitPath = path + "4200020789506" + ".png"; 

     //chekc if directory exist, if not, create 
     if (!Directory.Exists(path)) 
      Directory.CreateDirectory(path); 

     using (FileStream fs = new FileStream(fileNameWitPath, FileMode.Create)) 
     { 
      using (BinaryWriter bw = new BinaryWriter(fs)) 
      { 
       byte[] data = Convert.FromBase64String(imageData); 
       bw.Write(data); 
       bw.Close(); 
      } 
     } 
     // Save fileNameWitPath variable to Database. 
    } 

ich auch eine Überprüfen Sie, ob Ihr Verzeichnis vorhanden ist, und wenn dies nicht der Fall, wird es ein erstellen Ordner "YourCustomFolder" auf Ihrem Laufwerk C, wo Bilder gespeichert werden.

Wenn Sie auf einen Ordner, um das Bild zu speichern in Ihrem Projekt möchten, würde ich empfehlen Server.MapPath(~/YourFolderInApplication)

1

Hier verwendet, ist ein Beispiel dafür, wie ich Dateien auf einen Images Ordner in meinem Projektverzeichnis speichern.

var fileName = "4200020789506.png"; 
var base64String = SOME_REALLY_LONG_STRING; 

using (var s = new MemoryStream(Convert.FromBase64String(base64String))) 
using (var f = new FileStream(Path.Combine(Server.MapPath("~/Images"), fileName), FileMode.Create, FileAccess.Write)) 
{ 
    s.CopyTo(f); 
} 
Verwandte Themen