Прямая загрузка файла против чтения файла обратно как загрузка - PullRequest
1 голос
/ 18 февраля 2010

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

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

Что следует отметить:

  • URL-адреса одинаковы в обоих случаях, т. Е. (http://somesite.com/download/file.jad)
  • в браузере, использующем fiddler, загружаемые файлы / заголовки совпадают с байтом для байта

Так почему же телефон предпочел бы файл, который на самом деле является прямой ссылкой, а не тот, который является контроллером, возвращающим данные обратно, когда передаваемые данные и URL-адрес идентичны?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2010

Я обнаружил исправление для этой проблемы, хотя я все еще не уверен, что вызывает это.Я доставляю ссылку на телефон через смс / шлюз электронной почты.Когда телефон получает смс, и я выбираю ссылку для скачивания, он спрашивает, хочу ли я получить джед, я нажимаю «да», и он появляется и выпадает.Я поместил точно такую ​​же ссылку на другую страницу в виде HTML-ссылки и отправил смс, указывающий на эту страницу.Веб-сайт выдает ошибку ... Итак, я скопировал и вставил ссылку в браузер телефона, и страница отображается очень хорошо, я нажимаю ссылку загрузки JAD на странице, и теперь JAD работает нормально.

Так что я думаю о двух вещах: либо есть какой-то механизм безопасности, который предотвращает прямые ссылки в смс (но это работает для других файлов), либо способ, которым телефон получает URL-адрес, отличается.

Я запустил несколькопроверяет и замечает что-то еще, на странице, которая принимает значение идентификатора (http://site.com/download/145), где 145 - это идентификатор файла, если вы переходите по этой ссылке в браузере телефона, он работает нормально, и вы загружаете файл. ЕслиВы отправляете его в SMS-сообщении, сервер выдает ошибку, говоря, что id должен быть плавающим, и он получил строку. Так почему же, когда телефон связывается напрямую с sms, параметры url являются строками, но при использовании в браузерена самом деле разбирается как float?

Извините за длинное многословное объяснение, но это странная проблема.

0 голосов
/ 18 февраля 2010

Файл .JAD - это только первая часть загрузки. С ним также связаны файлы .COD (упоминаемые в JAD). Вы гарантировали, что ваш «потоковый» метод отправляет обратно файл COD правильно и с правильными типами MIME?

...