![]() |
|
Отправка pdf на сайт через HTTP сервис, ДвоичныеДанные и Base64 | ☑ | ||
---|---|---|---|---|
0
DosBot
14.05.19
✎
09:59
|
Платформа 8.3.13.1644
Формирую ответ на json-запрос (обмен "с сайтом"): формирую печатную форму запрашиваемого документа и отправляю его содержимое (ДвоичныеДанные закодированные в Base64): ... ПотокФайла = Новый ПотокВПамяти(); ТабДокумент.Записать(ПотокФайла, ТипФайлаТабличногоДокумента.PDF); ДвоичныеДанныеПечати = ПотокФайла.ЗакрытьИПолучитьДвоичныеДанные(); Ответ_.PrintForm = Base64Строка(ДвоичныеДанныеПечати); ... Проблема: прогер php утверждает, что после декодирования на стороне сайта pdf-файл не читается. Для отладки пробовал делать в 1ске делать обратное преобразование и всё читается: Ответ_.PrintForm -> ДвоичныеДанныеПечати -> Файл pdf: ДД1 = Base64Значение(ТекДанные_.PrintForm); ДД1.Записать(КакойТоПутьСохранения+ИмяФайла+".pdf"); Не могу понять где затык. Пробовал онлайн декодировщики (например https://www.motobit.com/util/base64-decoder-encoder.asp) - тоже, как и "на сайте", НЕ получается получить читаемый pdf (если скопипастить текст из ТекДанные_.PrintForm) ЧЯДНТ? |
|||
1
DosBot
14.05.19
✎
10:14
|
Пробовал тем же методом передавать картинку 3,8 мб. .. всё получилось без проблем. с PDF фантастика какая то
|
|||
2
palsergeich
14.05.19
✎
10:18
|
Нормально PDF таким образом передается на сайт.
Я думаю надо постучать по прогеру PHP |
|||
3
DosBot
14.05.19
✎
10:23
|
на стороне сайта код такой:
... $decoded = base64_decode($data); $file = 'invoice.pdf'; file_put_contents($file, $decoded); if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.basename($file).'"'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); readfile($file); exit; } ... может тут где ошибка? >_< |
|||
4
DosBot
14.05.19
✎
10:25
|
Ну или там сайт ответ как=то преобразуется и строка с PrintForm интерпретируется неверно?
|
|||
5
DosBot
14.05.19
✎
13:38
|
помог совет в (2) :)
Решилось доработкой погромистом PHP. Его коммент на сей счёт: "Собственно не менял ничего. Использовал один из методов, которые уже пытался применить. Дело в неправильной последовательности данных файла. При копировании из памяти, видимо, повреждалась его структура... Окончание файла иное - заканчивается на знак =" Как то так |
|||
6
Поpyчик-4
14.05.19
✎
14:07
|
Самому освоить php не вариант?
|
|||
7
DosBot
14.05.19
✎
17:03
|
(6) пока не было надобности.
Поле 1сных бескрайних просторов ещё не вспахано.. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |