2016-10-30 13 views
2

У меня есть простая форма веб-браузера, которая перемещается только на определенную веб-страницу, однако вместо перехода на эту веб-страницу она дает мне пригласить открыть или сохранить файл, нажав «Открыть», он откроется в моем браузере по умолчанию, и «Сохранить» дайте мне сохранить файл HTML.Файлы в папке «Dropbox» больше не отображаются в WebBrowser, но открывается диалоговое окно для открытия/сохранения файла.

Я не знаю, что вызывает это, поэтому любая помощь приветствуется.

Я также заверить вас, что синтаксис верен, а URL-адрес в файле HTML также верен.

+0

Покажите нам свой код и информацию на адрес, к которому вы переходите. – NineBerry

+0

Это буквально WebBrowser1.Navigate («https://linktohtmlfile.com/page.html»). Ссылка - это, конечно, псевдосвязь. Это файл dropbox, если это помогает; Раньше он работал раньше, но я думаю, что это просто что-то с моей установкой окон или, возможно, что-то, что я забыл установить –

+0

WebBrowser1.Navigate ("dl.dropboxusercontent.com/u/72383434/YGO%20ACC/News.html") Это все, что есть в этой форме. Я не знаю, что еще показать. Также я собираюсь создать новый проект и проверить там webbrowser и посмотреть, является ли это моим проектом или нет. EDIT: Создал новый проект с помощью только веб-браузера, и такая же проблема сохраняется. –

ответ

1

Это не проблема с кодом, но специальная проблема с этим URL. Используя URL-адрес, я получил ту же проблему. Переместившись к URL-адресу в Firefox, меня попросили сохранить файл. Я сохранил файл локально и загрузил его в свою папку Dropbox. Оттуда, используя то же имя файла и тот же файл, файл был отображен в браузере.

Анализ http-трафика с помощью Fiddler, результаты http отличаются в следующих заголовках.

С вашей учетной записи Dropbox:

content-disposition: attachment; filename=News.html 
content-security-policy: referrer no-referrer; sandbox; 
x-content-security-policy: referrer no-referrer; sandbox; 
x-webkit-csp: referrer no-referrer; sandbox; 

С моей Dropbox счет:

content-disposition: inline; filename="News.html"; filename*=UTF-8''News.html 
content-security-policy: referrer no-referrer 
x-content-security-policy: referrer no-referrer 
x-webkit-csp: referrer no-referrer 

Обратите внимание на разницу между "Content-Disposition: встроенный" и "Content-Disposition: вложение", который делает браузер предлагать загрузку, а не показывать встроенную в браузере. Также обратите внимание на дополнительную «Песочницу» в ответе от вашей учетной записи.

Я вижу два возможных объяснения этого различного поведения:

  1. (менее вероятно) Может быть, разные счета работают на двух разных серверах DropBox с различными версиями сервера программного обеспечения Dropbox.

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

Вероятность 2 кажется наиболее вероятной. Возможно, попробуйте переименовать файл или поместить его в другую подпапку и свяжитесь с Dropbox по этой проблеме.

Проблема заключается в том, что Dropbox отключил встроенный дисплей для контента, размещенного на бесплатных учетных записях в этом месяце. Он по-прежнему работает для моего аккаунта, потому что у меня есть платная (Dropbox Pro) учетная запись.

Dropbox имеет следующую информацию: in their documentation

Dropbox Basic (бесплатно) пользователей: Начиная с 3 октября 2016 года, вы можете не больше использовать общие ссылки на отображения содержимого HTML в веб-браузере. Если вы создали сайт, который напрямую отображает содержимое HTML из вашего Dropbox, оно больше не будет отображаться в браузере. Содержимое HTML само по себе останется в вашем Dropbox и может быть общим. Узнать больше .

Dropbox Pro и пользователи бизнеса: начиная с 1 сентября 2017 года вы можете больше не отображать содержимое HTML.

+0

Должно быть, это так. Похоже, мне нужно будет найти новый хост для моих html-файлов. Большое спасибо за вашу помощь, я очень ценю это! –

0

Обратите внимание, что у вас есть альтернативный подход, который позволил бы вы по-прежнему использовать Dropbox и выгоду от ваших HTML страниц.

dboxserver (written in Go)

С 3 октября 2016 Dropbox stopped serving html files с правильным заголовком типа содержимого текста/HTML. .html и .json теперь обслуживаются с заголовком содержимого, который заставляет браузер загружать файл, а не отображать его.

Запустите свой собственный сервер с:

CLIENT_ID="REMOVED" CLIENT_SECRET="REMOVED" ACCESS_TOKEN="REMOVED" go run server.go -hostname "db.sajalkayan.com" 

(изменить имя хоста вашего собственного имени сервера)

Вам нужно создать приложение на Dropbox developer portal.

  • CLIENT_ID - "App key"
  • CLIENT_SECRET - "App secret"
  • ACCESS_TOKEN - Разрешить неявную субсидию и генерировать маркер доступа.
  • hostname - Если настроено, сервер прослушивает https по адресу :443 и получает сертификат от Let's Encrypt, иначе он прослушивает http по адресу :8889. папка
  • folder - По умолчанию /Public: Папка Dropbox, которую вы хотите открыть.