ASP.NET c# || Externes File neu Abspeichern

zioProduct

Erfahrenes Mitglied
Huhu,
Meine momentane Lage sieht so aus:
Ich habe ne Auswertung geschrieben, die per Liste eingesehen kann, oder per Grafik. Die Grafik wird durch das dotnetChartingTool erzeugt. Jede Grafik, die das Chart erzeugt, wird in meinen Temp-Ordner gelegt(für ne bestimmte Zeit). Da ich aber den Text, als Excel Export irgend wo hin verlagern kann, will der User dies natürlich auch mit der Grafik tun. Und per Maus Kopieren und Einfügen mag er nicht :)
Nun die Frage, wenn ich eine WindowsForm hätte, könnte ich das Ganze ja mit einem FileDialog machen, wo der User seinen SpeicherOrt aussucht, und ich das File mit File.Move anschliessend dahin packe. Da es aber ne Asp.Net-Anwendung ist, kann ich einen FileDialog nur über das Streamen einer Datei per Response erreichen. Leider weiss ich nicht, wie ich es nun Handhaben muss, dass ich einen FileDialog bekomme, und anschliessend den Pfad von diesem an meine File.Move Methode übergebe?$

Hab ich die möglichkeit, mein Bild (ist ne png-Datei) in meinen Stream reinzubekommen, damit ich dies Anschliessend per Response weiterleiten kann, und dann per FileDialog, der vom Stream erzeugt wird, speichern kann?

Danke und bis denne

mfg
ziop
 

Alexander Schuc

crazy-weasel
Hi.

Die Frage ist mir noch ein wenig unklar.

Soll die Datei am Server verschoben werden, oder soll sie der User auf seine Festplatte bekommen? Sprich, willst du einen FileDialog für die Festplatte vom User oder für eine gewisse Verzeichnisstruktur am Server?

So eine Verzeichnisauflistung kannst mit den Klassen in System.IO ja schnell selber bauen. Bau dir also ein Webform wo der User durch die Verzeichnisse browsen kann, und halt auch auf irgend eine Weise eines auswählen kann.

Das mit dem Verschieben kannst dann auf verschiedene Arten machen. Entweder übergibst du dem Webform schon die nötigen Daten, also welche Datei verschoben werden soll, und das Webform kümmert sich ums verschieben. Oder du lässt einfach einfach einen Ordner auswählen, und mittels Javascript schreibst den Pfad dann in ein Textfeld (oder irgendwo anders hin) von der Seite die das Webform als Popup aufgemacht hat.

Hoffe hast verstanden was ich mein.

MfG,
Alex
 

zioProduct

Erfahrenes Mitglied
Jo, hab mir gedacht, dass ich dafür extra nen Controll machen muss :( Ja es geht darum, das der User das File vom Server bekommt. Mit meinen Jetzigen Files(WordDokumente, ExcelSheets etc) hab ich es wie gesagt, mittels Response ausgegeben, und der hat mir dann nen FileDialog generiert, aber diesem Falle geht das mit nem vorhandenen File nicht. Egal, trotzdem danke, werd ich mich wohl ans Basteln machen :)

mfg

ziop

**edit**

Hab was gefunden
Code:
Response.ContentType = "application/octet-stream";
string file = "Auswertung" +Session["UsId"].ToString()+".png";
Response.AddHeader("Content-Disposition","attachment; filename="+file);
Das Problem ist nur, das ich nun meinen SaveFileDialog bekomme, auch die Auswertung.png downloaden kann, aber ich bekomme kein File. Ist mir auch ersichtlicht da ich noch sagen muss, was Auswertung.png überhaupt ist, oder wo es ist, aber weiss noch nicht recht wie, sch gucke mal weiter ;)

**edit2**
voilà:
Code:
string file = "Auswertung" +Session["UsId"].ToString()+".jpg";
string pfad = "Temp/Auswertung" +Session["UsId"].ToString()+".jpg";
Response.ContentType = "image/JPEG";
Response.AddHeader("Content-Disposition","attachment; filename="+file);
Response.TransmitFile(pfad);
Thread somit erledigt.
 
Zuletzt bearbeitet:

Neue Beiträge