.net developer123456789 Ответов: 3

Загрузка файла с помощью диалогового окна сохранить как из веб-браузера в VB


Всем Привет

Как открыть диалоговое окно загрузки файлов в Internet Explorer в vb

Что я уже пробовал:

Я много искал в google, но не нашел ни одного хорошего решения.

3 Ответов

Рейтинг:
2

Nirav Prabtani

Это зависит от ваших навыков работы с интерфейсными технологиями, такими как jquery, javascript.

1) Вы можете создать список файлов
2) установить кнопку Скачать или ссылку там
3) Вы можете использовать модальное всплывающее окно или любой div (fadeIn/fadeOut) в качестве диалога, и Вы можете написать логику в соответствии с вашими потребностями.
4) Вы можете скачать файл по щелчку действия диалога

Отдых, у вас нет никакой команды над собственным поведением браузера.


.net developer123456789

Спасибо Нирав

Пожалуйста, дайте мне ссылку для приведенных выше ваших комментариев, чтобы я их реализовал.

Спасибо

Рейтинг:
2

DerekT-P

Нирав, если я правильно понял, ты хочешь отправить свое .XLSX-файл с сервера в браузер, но чтобы дать пользователю возможность сохранить файл, а не автоматически открывать его в Excel?
Если это так, то в вашем серверном VB.Чистый код, сделайте что-то вроде:

Dim filename as string = "demo.xlsx"                    '' 
        Dim fullfilename as string = server.mappath([filename]) '' Get the full local filesystem filename
        Response.Clear()                                        '' We don't want to send any of the current page back
        Response.Headers.Add("Filename", filename)             '' Set the filename 
        HttpContext.Current.Response.AddHeader("Content-Disposition", String.Format("attachment;filename={0}.xlsx", filename))  '' This tells the browser that the content is an ATTACHMENT, i.e. to save it, not open it
        Response.ContentType = "vnd.openxmlformats-officedocument.spreadsheetml.sheet"  '' The Content-type for XLSX spreadsheets
        Response.WriteFile(fullfilename)                         '' Send the actual file content
        Response.End()                                           '' End the response - nothing else gets sent


Важной частью здесь является content-disposition, который говорит браузеру "загрузить", а не открывать его. Как браузер справляется с этим, зависит от конкретного браузера; Chrome всегда помещает его в папку загрузок, IE может запросить у вас местоположение. Надеюсь, что вышеизложенное поможет вам, даже если только с некоторыми ключевыми словами для дальнейшего исследования.

Удачи вам!


Рейтинг:
1

OriginalGriff

Вы не можете действительно "открыть диалоговое окно загрузки файла" в веб - браузере, потому что он на самом деле не имеет прямого доступа к папкам сервера-или, по крайней мере, не должен.

Вместо этого вам нужно будет создать веб-страницу, на которой перечислены папки и их содержимое, и показать это пользователю. когда они выбирают файл, вы можете отправить его им, но у вас не будет контроля над тем, что с ним произойдет после этого - вы не можете заставить браузер сохранить его или сказать, где он должен быть сохранен, если пользователь решит это сделать.


.net developer123456789

Спасибо OriginalGriff,

Я устал следовать коду, но не могу работать на Visual Basic.

Дим DownloadedFileFilename как строку ' сохранить здесь свой загруженный файл, имя
Тусклый советник как Excel.Приложение
Dim DownloadedFile Как Рабочая Книга

Установите EA = новый Excel.Приложение
С помощью советника
.Visible = True ' просто чтобы убедиться
.Свойство screenupdating = true', то просто, чтобы убедиться
Установите DownloadedFile = .Workbooks.Open(Filename:=DownloadedFileFilename), ReadOnly:=True)
"[ДЕЛАЙ ВСЯКОЕ]
Конец С

есть идеи ?
как загрузить файл .xlsx в диалоговом окне internet explorer с помощью visual basic

OriginalGriff

Почему ты думаешь, что это принесет какую-то пользу?
Это VB-код: он работает на сервере. Для этого требуется, чтобы на сервере был установлен Excel, и он будет отображаться на сервере, а не на клиенте.
Это может сделать что-то в разработке, где они являются одной и той же машиной, но это не будет работать в производстве ... и вы не можете запустить любое приложение на клиентском компьютере непосредственно с сервера по соображениям безопасности.