powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / длинный стринг в ViewBag обрезается
15 сообщений из 15, страница 1 из 1
длинный стринг в ViewBag обрезается
    #40094983
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток!
Asp.New MVC 5. Я в переменную ViewBag помещаю коллекцию записей string в которых находится содержимое файлов PDF, которые я отображаю при помощи <iframe. Все в общем работает, но когда попадается большой многостраничный документ весом >1.5 МБ, перестает отображаться в Хроме, но продолжает работать в Мозилле. Смотрю в "просмотр кода страницы" - вижу, что src мозилле выглядит нормально, в хроме обрезан и сигнатура даже в начале не та. Помню, что есть ограничение на размер запроса в байтах, прописываемое в Web.config (<httpRuntime maxRequestLength="...." /> ) но оно действовало бы на оба браузера. Куда копать?
...
Рейтинг: 0 / 0
длинный стринг в ViewBag обрезается
    #40094998
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сам по себе ViewBag не имеет ограничения (ну только в твою оперативку)
засунь в модель и чекни дойдет ли до хрома. возможно у него как то рендер хитро вырезает
...
Рейтинг: 0 / 0
длинный стринг в ViewBag обрезается
    #40095002
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я что-то вообще не понял. Как ты
denis_viktorovich
переменную ViewBag
denis_viktorovich
отображаю при помощи <iframe
...
Рейтинг: 0 / 0
длинный стринг в ViewBag обрезается
    #40095059
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Я что-то вообще не понял. Как ты
denis_viktorovich
переменную ViewBag
denis_viktorovich
отображаю при помощи <iframe


ViewBag.ImageData = string.Format("data:application/pdf;base64,{0}", rz1.imageBase64Data);

<iframe id="iframeid" style="width:100%; height:100%;" src="@ViewBag.ImageData"> </iframe>
...
Рейтинг: 0 / 0
длинный стринг в ViewBag обрезается
    #40095070
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis_viktorovich
fkthat
Я что-то вообще не понял. Как ты пропущено...
пропущено...


ViewBag.ImageData = string.Format("data:application/pdf;base64,{0}", rz1.imageBase64Data);

<iframe id="iframeid" style="width:100%; height:100%;" src="@ViewBag.ImageData"> </iframe>

Ну вот это уже о чем-то. По-моему очевидно, что тут какая-то шляпа именно с хромом (если в мозиле все ок). Почему не отдавать pdf в iframe просто отдельным запросом?
...
Рейтинг: 0 / 0
длинный стринг в ViewBag обрезается
    #40095080
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
denis_viktorovich
пропущено...


ViewBag.ImageData = string.Format("data:application/pdf;base64,{0}", rz1.imageBase64Data);

<iframe id="iframeid" style="width:100%; height:100%;" src="@ViewBag.ImageData"> </iframe>

Ну вот это уже о чем-то. По-моему очевидно, что тут какая-то шляпа именно с хромом (если в мозиле все ок). Почему не отдавать pdf в iframe просто отдельным запросом?

честно говоря не понял запросом это как?
...
Рейтинг: 0 / 0
длинный стринг в ViewBag обрезается
    #40095133
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis_viktorovich
честно говоря не понял запросом это как?

В src iframe-а писать не данные PDF а линк, а по линку уже этот PDF отдавать.
...
Рейтинг: 0 / 0
длинный стринг в ViewBag обрезается
    #40095160
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat,

его надо гдето хранить, файлы выгружаются из базы (их м.б. несколько) , распаковываются, считываются в память. Если разместить строку на форме, она нормально отображается, проблема только при попытке сунуть ее в src.
...
Рейтинг: 0 / 0
длинный стринг в ViewBag обрезается
    #40095193
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis_viktorovich
его надо гдето хранить, файлы выгружаются из базы (их м.б. несколько) , распаковываются, считываются в память.
Отдавай его в хттп-респонс напрямую. Это стандартный подход. Я, если честно, вообще впервые вижу такой выкрутас как у тебя. Даже не особо удивляет, что какой-нибудь браузер колом встает от этого.
...
Рейтинг: 0 / 0
длинный стринг в ViewBag обрезается
    #40095858
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, так получилось. А вот еще вопрос - хотелось бы дать возможность просмотра документа, но не давать сохранить и напечатать.
document.addEventListener('contextmenu', event => event.preventDefault());
- отрубает правую кнопку на всей странице, кроме самого элемента <iframe>, там предательски вылазит Save as... и Print..
...
Рейтинг: 0 / 0
длинный стринг в ViewBag обрезается
    #40095887
fkfka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
denis_viktorovich
А вот еще вопрос - хотелось бы дать возможность просмотра документа, но не давать сохранить и напечатать.

Тут, как бы, понимаешь, если ты отдаешь какой-то контент в веб по HTTP, то это автоматически означает, что этот контент доступен из всего, что только можно. Значит и сделать с ним можно будет все что угодно. Единственный способ для ПДФ это защитить сам ПДФ его собственными средствами.
...
Рейтинг: 0 / 0
длинный стринг в ViewBag обрезается
    #40096006
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkfka,
Тут скорее не защита от изменений, а некая попытка затруднить возможность сохранить документы и утащить их за пределы предприятия. Вход там только по паролю логину и наверное стоит запускать на терминале в режиме киоска (чтобы печатать и сохранять было не куда).
...
Рейтинг: 0 / 0
длинный стринг в ViewBag обрезается
    #40096017
fkfka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
denis_viktorovich
а некая попытка затруднить возможность сохранить документы и утащить их за пределы предприятия.

Ну, тогда, может помочь только СБ с рукояткой от швабры в руках.

Возможно есть какой-нибудь способ замутить ПДФ открываемый только на конкретной машине, но тут я не спец. Да и в конце-концов, что все равно помешает просто сфоткать открытый документ на телефон прямо с экрана? :))
...
Рейтинг: 0 / 0
длинный стринг в ViewBag обрезается
    #40096351
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkfka,

помог прозрачный image поверх моего iframe, но одна проблема - надо, чтобы ширина img была меньше iframe ровно на размер scrollbar-a, чтобы всеже многостраничный и большой документ можно было листать. Примерно подобрал, но точно не нагуглил, как в JS узнать размер скроллбара в пикселях.....
...
Рейтинг: 0 / 0
длинный стринг в ViewBag обрезается
    #40096361
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
/**
 * Calculate scrollbars thickness
 * @returns {Object} result - result
 * @returns {number} result.vertical - vertical scrollbar width
 * @returns {number} result.horizontal - horizontal scrollbar height
 */
export function getScrollbarsThickness() {
  // Creating invisible container
  const outer = document.createElement('div');
  outer.style.visibility = 'hidden';
  outer.style.overflow = 'scroll'; // forcing scrollbar to appear
  outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps
  document.body.appendChild(outer);

  // Creating inner element and placing it in the container
  const inner = document.createElement('div');
  inner.style.height = '100%';
  outer.appendChild(inner);

  // Calculating difference between container's full size and the child size
  const scrollbarWidth = outer.offsetWidth - inner.offsetWidth;
  const scrollbarHeight = outer.offsetHeight - inner.offsetHeight;

  // Removing temporary elements from the DOM
  outer.parentNode.removeChild(outer);

  return { vertical: scrollbarWidth, horizontal: scrollbarHeight };
}
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / длинный стринг в ViewBag обрезается
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]