Zapis pliku - monit o miejsce docelowe

0

Hej,
z WebAPI dostaję plik, kod webapi:

(....)
  var file = File.ReadAllBytes(filePath);

            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
            response.Content = new StreamContent(new FileStream(filePath, FileMode.Open, FileAccess.Read));
            response.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");
            response.Content.Headers.ContentDisposition.FileName = "Visits.csv";

            return response;

No i teraz odbieram to w angularJS:


            $http.get('./api/analytics/export',  { responseType: 'arraybuffer' })
  .success(function (data) {
      var file = new Blob([data], { type: 'application/csv' });
         saveAs(file, 'Visits.csv');

moje pytanie: co muszę zrobić aby wyskoczyło okienko do wskazania miejsca zapisu tego pliku? Bo obecnie automatycznie się do dzieje.

EDIT:
Jeszcze w sumie jest jedna sprawa: chce z WebAPI zwracać plik typu CSV a następnie zapytać usera gdzie chce go zapisać. Tak ogólnie chce zrobić.
dostaje teraz to tak jak wyżej tylko jak to teraz zapisać?

1

No a niby gdzie się teraz zapisuje? Czy bierzesz pod uwagę, że już chyba żadna przeglądarka nie pyta o to gdzie zapisać plik, tylko automatycznie zapisuje do folderu pobieranych plików? Spróbuj ściągnąć cokolwiek innego. I nie ma opcji wymusić (z poziomu JS) okienka z folderami.

0

Ewentualnie jak jeszcze inaczej to zrobić? Bo gdzieś czytałem że można jakiegoś ukrytego iframe zrobić tylko nie wiem co to jest i jak to zrobić

0

jedynie flashem to zrobisz - twój applet flashowy musiałby otrzymać link do pliku (wygenerowanego bloba nie przekażesz do flasha na 99%! musi być plik na serwerze)

a szefowi powiedz "to zależy od przeglądarki i nic z tym nie możemy zrobić, tak samo jak nie możemy ustawić użytkownikowi gołej baby na tapecie poprzez stronę internetową"

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0