2016-06-10 11 views
1

Ich habe eine Upload-Funktion, wo es das hochgeladene Bild in einer grdiview nach dem Upload-Klick anzeigt. Hier ist der Code:Hochgeladene Bilder werden nicht im Ordner asp.net gefunden.

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      string[] filePaths = Directory.GetFiles(Server.MapPath("~/Uploads/")); 
      List<ListItem> files = new List<ListItem>(); 
      foreach (string filePath in filePaths) 
      { 
       string fileName = Path.GetFileName(filePath); 
       files.Add(new ListItem(fileName, "~/Uploads/" + fileName)); 
      } 
      GridView1.DataSource = files; 
      GridView1.DataBind(); 
     } 
    } 
    protected void Upload(object sender, EventArgs e) 
    { 

     if (FileUpload1.HasFile) 
     { 
      string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName); 
      FileUpload1.PostedFile.SaveAs(Server.MapPath("~/Uploads/") + fileName); 
      Response.Redirect(Request.Url.AbsoluteUri); 
     } 
    } 
} 

}

Dies funktioniert gut. Es wird hochgeladen und in der Gridview angezeigt. Das Problem ist, dass die Bilder nicht auf den Pfad ausgerichtet sind. Es ist nicht in der uploads Ordner. Irgendwelche Tricks?

UPDATE Alle in Lösung Explorer und ich habe dies:

enter image description here

+0

enable 'Alle Dateien anzeigen' in Lösung Explorer und überprüfen App_Data> Uploads – Sanket

+0

es tat sehen. Bitte siehe aktualisiert. @Sanket –

+1

Klicken Sie mit der rechten Maustaste auf den Upload-Ordner und wählen Sie "Ordner im Datei-Explorer öffnen" und dann werden Ihnen alle Bilder im Dateisystem angezeigt. – vivek

Antwort

0

Auf mögliche Lösung könnte beim Speichern/Hochladen von Dateien verwenden Path.Combine

FileUpload1.PostedFile.SaveAs(Path.Combine(Server.MapPath("~/Uploads/"),fileName)) 

und ähnlich für:

files.Add(new ListItem(fileName,Path.Combine(Server.MapPath("~/Uploads/"),fileName))); 
+0

gleiche Sache passiert Sir –

+0

Eine andere Option: files.Add (neue ListItem (fileName, Path.Combine (Server.MapPath ("~/Uploads /"), Dateiname))); – Sami

0

Meistens ich verwendet folgenden Ansatz.

Sie können Hilfe von erhalten folgende Beispielcode ...

string fnam, newname,ext, serpath,dbpath="", fid; 
ext = System.IO.Path.GetExtension(File_Upload.PostedFile.FileName); 
fnam = File_Upload.PostedFile.FileName; 
fid = Guid.NewGuid().ToString(); 
newname = fid + ext; 
serpath = Path.Combine(Server.MapPath("uploads\\"), newname); 
dbpath = "~\\uploads\\" + newname; 
File_Upload.PostedFile.SaveAs(serpath); 
Verwandte Themen