Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
7 / 2 / 0
Регистрация: 19.10.2014
Сообщений: 279

Получить файл pdf

07.07.2023, 02:50. Показов 2044. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет ребят.
Задача такая, есть сервер который принимает http запросы на c# и 1с. Принимает запрос с параметром в ответ отдает путь до файла.

Сам пхп и сайт расположен на другом компутере но в одном домене.

при нажатии на кнопку пользователь должен получить файл пдф.
Файл пдф загружается но он пустой, будто путь не найден.
Но если укажу в конце

PHP
1
//echo "1231231";
Приходит файл пдф открываю через VS там так и написано 1231231
Задача возможно и простая, но Мне не понятная. Подскажите пожалуйста что не так.
1с или Шарп путь точно правильный отдают

PHP
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php if (!isset($SITEROOT)) exit;
 
$title = "Паспорт качества";     
 
if ($_POST['sbm']>0 && $_POST['nakladnaya']) {
    
    $nakladnaya = $db->real_escape_string($_POST['nakladnaya']);
    $json = file_get_contents("http://$http_host/json.php?z=pasport&nakladnaya=".$nakladnaya);
    
 
    //var_dump($json); exit;
 
    
    $data = new DateTime('', $timezone); $data_add_log = $data->format('Y-m-d H:i:s');
    $db->query("INSERT INTO users_nnk_log (user_id, razdel, opis, date) VALUES ('{$com_id}','pasport','Запрос Паспорта Качества. Ж/Д накладная: {$nakladnaya}','{$data_add_log}') ");
 
    if($json) {
    $array = json_decode($json, true);
 
        foreach($array as $arEl) {
        $fileName = end(explode('\\', $arEl['ПаспортКачестваПуть']));
        $content = file_get_contents('/var/www/html/pdf/'.$fileName);
        
        header('Content-Type: application/pdf');
        header('Content-Disposition: attachment;filename="'.$fileName.'"');
        //header('Contet-Trasfer-Encoding: binary');
        header('Cache-Control: max-age=0');
        // If you're serving to IE 9, then the following may be needed
        header('Cache-Control: max-age=1');
 
            // If you're serving to IE over SSL, then the following may be needed
        header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
        header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified
        header('Cache-Control: cache, must-revalidate'); // HTTP/1.1
        header('Pragma: public'); // HTTP/1.0
        //echo "1231231";   
            echo $content;
            exit;
 
        }
    }
}
 
include $_SERVER['DOCUMENT_ROOT']."/strukt/top.php";
?>
<div class="passport-page"> 
    <h1><?=$title?></h1>    
    <p>Для получения паспорта качества для <?=$com_name?>, заполните одно из полей ниже и нажмите кнопку "Получить"</p>
    <form method='POST' action='/pasport/' name='month_form'>
        <div class="flex">
            <input name="nakladnaya" type="text" placeholder="Номер железнодорожной накладной">
        </div>
        <input name="sbm" value="1" hidden="hidden">
        <button><i>Получить паспорт</i><span></span></button>
    </form>
    <br>
    <?if($link):?>
        <?=$link?>
echo $link
    <?endif;?>
</div>
 
<?php include $_SERVER['DOCUMENT_ROOT']."/strukt/down.php";  ?>

PHP
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
error_reporting(0);
 
require $_SERVER['DOCUMENT_ROOT'] . '/config.php';
 
if(isset($_GET['z']) && !empty($_GET['z'])) {
    $auth = base64_encode($jsonLogin.":".$jsonPass);
        $context = stream_context_create([
            "http" => [
               "header" => "Authorization: Basic $auth",
            "timeout" => 40,
            ]
        ]);
 
 
    switch ($_GET['z']) {
        case 'day':
            $dtQuery = new DateTime($_GET['date']);
            if($develop) {
                $ourData = file_get_contents($dayRemoteFileName);
            } else {    
                $ourData = file_get_contents($dayRemoteFileName.(int)$_GET['cl_kod'].'/'.$dtQuery->format('Ymd'), false, $context); 
fp($ourData);
            }
            echo $ourData;
            exit;
            break;
        case 'month':
            if($develop) {
                $ourData = file_get_contents($monthRemoteFileName);
            } else {
                $ourData = file_get_contents($monthRemoteFileName.(int)$_GET['cl_kod'].'/'.$_GET['date'].'01', false, $context);
            }
            echo $ourData;
            exit;
            break;
        case 'pasport':
            if($develop) {
                $ourData = file_get_contents($pasportRemoteFileName);
            } else {        
              $ourData = file_get_contents($pasportRemoteFileName.urlencode($_GET['nakladnaya']), false, $context);
            }
            echo $ourData;
            break;
    }
}
Миниатюры
Получить файл pdf  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.07.2023, 02:50
Ответы с готовыми решениями:

Как создать PDF файл с именем ZAKAZ_(дата сегодня).pdf
Как создать из &quot;Excel таблицы&quot; - PDF файл с именем ZAKAZ_(дата сегодня).pdf при помощи макроса? Есть такой макрос: Sub...

Не могу открыть в PDF читалке в форме PDF файл имя которого хранится в БД Access
в приложении есть поиск он ищет в БД(1 таблица, 2 поля) и если в поисковую строку вводится название проблемы схожее с имеющейся в БД(1...

файл pdf вставка в Html. C Возможностью менять контент сайта в зависимости от прокручевоемой странички PDF
Вобщем то смысл описан в названии. Но тут напишу подробнее чего хочу. Ситуация такова что сейчас изучаю С++... и сейчас столкнулся с...

47
7 / 2 / 0
Регистрация: 19.10.2014
Сообщений: 279
18.07.2023, 11:31  [ТС]
Студворк — интернет-сервис помощи студентам
Уже по лучше, пишет теперь просто Null
0
89 / 74 / 24
Регистрация: 16.05.2023
Сообщений: 268
18.07.2023, 11:33
Значит сейчас в основном проблема только в этом ?

PHP
1
var_dump(file_get_contents('http://10.1.3.4/NNK/hs/report/get_invoice/ЭЧ277160', false, $context));
0
7 / 2 / 0
Регистрация: 19.10.2014
Сообщений: 279
19.07.2023, 03:17  [ТС]
Цитата Сообщение от Hmms Посмотреть сообщение
одгрузи файлики выше к себе. На данный момент такое
Да Я так и сделал, заменил со старыми

Добавлено через 2 часа 12 минут
Цитата Сообщение от Hmms Посмотреть сообщение
http://10.1.3.4/NNK/hs/report/get_invoice/ЭЧ277160
Если отправить просто путь до файла на диске, то json разбирается легко.
Может быть слишком длинная строка с Base64?
0
89 / 74 / 24
Регистрация: 16.05.2023
Сообщений: 268
19.07.2023, 16:24
Цитата Сообщение от yyyuuu Посмотреть сообщение
Если отправить просто путь до файла на диске, то json разбирается легко.
А по ссылки у вас ничего? То скорее всего дело в ссылке. А не в длине данных. Смотрите что отвечает запрос file_get_contents
0
7 / 2 / 0
Регистрация: 19.10.2014
Сообщений: 279
20.07.2023, 02:12  [ТС]
Цитата Сообщение от Hmms Посмотреть сообщение
Смотрите что отвечает запрос file_get_contents
если смотреть json.php тогда null.
Вернул вообще все как было с начала когда путь выгружрал.
дам показал:
Code
1
array(1) { [0]=> array(1) { ["ПаспортКачестваПуть"]=> string(121) "\\hp-db-04\Files\ПаспортаКачестваНефтепродуктов\M100p.412rez.48.(2023).pdf" } }
0
89 / 74 / 24
Регистрация: 16.05.2023
Сообщений: 268
20.07.2023, 04:57
Цитата Сообщение от yyyuuu Посмотреть сообщение
дам показал:
Мы видим массив, который имеет ключ "ПаспортКачестваПуть" в котором содержится путь до файла, на жёстком диске "сервера"
0
7 / 2 / 0
Регистрация: 19.10.2014
Сообщений: 279
21.07.2023, 04:59  [ТС]
Цитата Сообщение от Hmms Посмотреть сообщение
Мы видим массив, который имеет ключ "ПаспортКачестваПуть" в котором содержится путь до файла, на жёстком диске "сервера"
Верно, а Я бы хотел чтобы Я видел строку Base64 которую Я потом превращу в pdf и покажу пользователю.
До сервера нет доступа больше, да он и не нужен

Добавлено через 2 часа 37 минут
ИЛи как можно передать пдф в таком случае?
0
89 / 74 / 24
Регистрация: 16.05.2023
Сообщений: 268
21.07.2023, 06:08
Цитата Сообщение от yyyuuu Посмотреть сообщение
ИЛи как можно передать пдф в таком случае?
Вместо пути, передавать данные, предварительно их считав через file_get_contents и поместив в функцию base64_encode
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.07.2023, 06:08

Нужна java-программа для чтения электронных книг в формате PDF. Или как можно переделать PDF книгу в вордовский файл?
Нужна java- программа для чтения электронных книг в формате PDF. Нужна очень срочно прошу помощи завтра экзамен просто нада успеть. Или...

Получить картинки из файла pdf
Нашел решение http://keriat.ru/2010/09/03/pdf-to-png-transform/ , но что я только не делал, ответ один - Fatal error: Class 'imagick' not...

Получить автора файла pdf
Суть: из VBA генерятся файлики pdf, у которых прописан автор. Нужно батником получить текст, прописанный в свойстве файла...

Получить картинки из файла pdf
Меня интересует, есть ли такая возможность в Шарпе? Я Студию не ставил и попросил знакомого это проверить у которого она установлена....

Как получить гиперссылки в pdf документе
Добрый день! Я работаю с библиотекой IText7. Мне нужно получить все гиперссылки pdf документа. В интернете я не нашел примера, как это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
48
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru