#c# #asp.net #download
#c# #asp.net #Скачать
Вопрос:
Я пытаюсь разработать веб-страницу, которая позволит пользователям загружать файлы в каталог по своему выбору. В моем поиске, чтобы найти способ сделать это, я обнаружил, что вы не можете использовать «FolderBrowserDialog». Я также обнаружил, что онлайн-примеры будут искать только путь к директории websrver, а не на локальном компьютере. Есть ли способ получить путь к каталогу? У меня есть код для передачи файла по FTP, мне просто нужно заменить код для «FolderBrowserDialog».
Комментарии:
1. Я не думаю, что можно получить доступ к структуре каталогов пользователя на сервере
2. Загрузка файла — это функция браузера. Любой браузер предложит диалоговое окно, похожее на SaveFileDialog, когда пользователь загружает файл. Некоторые браузеры могут иметь путь по умолчанию для загрузки (например, GoogleChrome). Вам просто нужно написать некоторый код, чтобы начать загрузку — tmt — Записать запрошенный файл в поток ответов (см.: msdn.microsoft.com/en-us/library /… ) — hth
Ответ №1:
На самом деле это не зависит от вас как веб-сайта, на самом деле браузеры должны хранить там, куда они хотят загружать файлы. Здесь происходит довольно необходимое разделение между веб-сайтом и клиентским компьютером.
Ответ №2:
В веб-приложении вы не можете произвольно читать или записывать данные на компьютере пользователя. Это было бы зияющей дырой в безопасности, поэтому это просто невозможно сделать. Диалоговое окно «Сохранить как» — это то, что происходит полностью на стороне клиента. Ваш контроль над процессом загрузки заканчивается, как только вы устанавливаете тип MIME и отправляете данные файла.
Комментарии:
1. Я использую FTP, и мне просто нужно получить путь, по которому они хотят, чтобы он шел. Как только у меня будет путь, я думаю, у меня все получится, но я хочу что-то другое, кроме текстового поля, чтобы получить путь.
2. Если вы используете FTP, как это связано со страницами ASPX? Пожалуйста, уточните, что вы пытаетесь сделать.
3. На моей странице у меня есть все для доступа к нашему FTP-сайту, в настоящее время я могу показывать файлы, загружать файлы и удалять. Все с помощью C # и моего интерфейса ASPX. Теперь пытаюсь выполнить загрузку, не указывая, пожалуйста, вставьте ваше местоположение загрузки в это текстовое поле. они дали нам элемент управления загрузкой, но не элемент управления загрузкой, чтобы просто собирать имя пути.
4. Даже если у вас «есть путь», вы не сможете записать файл на компьютер клиента по произвольному пути… вы просто не можете этого сделать. Как уже говорилось ранее, все, что вы можете сделать, это отправить файл с соответствующими заголовками, и это вызовет диалоговое окно «Сохранить как» в браузере, и все.
Ответ №3:
Браузеры обычно не позволяют вам выбирать местоположение для отдельной загрузки. вы можете изменить настройки своего браузера, чтобы обновить папку загрузки. Если вы хотите, чтобы это было на вашей веб-странице, вам, вероятно, понадобится элемент управления activex. этот элемент управления activex может отображать каталоги на клиентском компьютере, чтобы пользователь мог их выбрать. Вам нужно написать код для загрузки файла в это место с помощью WebClient.Метод DownloadFile.
http://msdn.microsoft.com/en-us/library/ez801hhe.aspx
Не ожидайте, что этот элемент управления activex работает со всеми вашими пользователями.Браузеры обычно блокируют управление activex или запрашивают пользователя (если настройка такая).