У нас есть код, который загружает файл PDF с Google Диска с помощью API Диска, после чего мы используем файл для создания нового конверта и отправки его клиенту.
При использовании одного и того же файла некоторые из этих запросов работают, а некоторые возвращаются с ошибкой «PDF_VALIDATION_FAILED».
У меня есть файл журнала (файл), который содержит base64 файла и информацию о запросе, используя внешний инструмент для преобразования base64 в PDF, он кажется действительным, а также я попытался открыть файл с помощью Adobe Acrobat и документ выглядит нормально.
Есть ли какая-либо документация о том, что делает PDF недействительным?
Заранее спасибо
Я провел тест с использованием веб-приложения и того же файла, и он работает, он позволил мне загрузить файл, не зная, почему API говорит, что он недействителен.
PDF-файл в вашем запросе неполный. DocuSign правильно возвращает PDF_VALIDATION_FAILED.
какой внешний инструмент вы используете для преобразования в base64? Вы всегда можете использовать двоичную загрузку вместо base64, возможно, у вас проблема с кодировкой.
Я попытался использовать двоичную передачу вместо кодировки base64 и получил ту же ошибку, следуя инструкциям документа ссылка . В файле журнала отображается та же ошибка, поэтому я думаю, что какое-то правило проверки препятствует загрузке pdf (иногда это работает).
Похоже, у меня проблема с файлом. Я открыл ваш журнал, скопировал base64, расшифровал его и сохранил как файл .pdf. Этот файл не открывался в Foxit Reader и не загружался в веб-консоль DocuSign. Во-первых, в конце отсутствует %%EOF
, но, вероятно, есть и другие проблемы, из-за которых это не PDF.
Я тоже так думал, но я протестировал base64 на этом инструменте и расшифровал его, и файл, похоже, в порядке. Я также использовал этот веб-сайт для проверки файла, и он говорит, что все в порядке. Я использую Nodejs для чтения файла const fileBytes = fs.readFileSync(filePath); const doc2b64 = Buffer.from(fileBytes).toString('base64');
декодировал, и с файлом все в порядке" - я не знаю, что именно вы расшифровали, но PDF-файлы в запросах, которыми вы поделились (с 16:35:20 и с 23:30:48 вчера), оба обрезаны . Первый имеет длину 61761 байт (но должен был быть 62353 байт), а второй — 52067 байт (но должен был иметь длину 55913 байт).
Да мой плохой. Проблема была в кодировке файлов. Я загружал файлы с Диска с помощью API Диска и устанавливал тип ответа на поток, поэтому я изменил его на arrayBuffer, а затем на base64, и теперь он работает. Этот другой вопрос помог мне решить мою проблему: ссылка Спасибо всем за ваше время и ответы!
Если вы можете загрузить файл в конверт DocuSign с помощью веб-приложения DocuSign, но это не работает при использовании API:
name
. Например, контракт.docx. Атрибут fileExtension
иногда не используется платформой.Да, ты был прав. Проблема была в кодировке файлов. Я загружал файлы с Диска с помощью API Диска и устанавливал тип ответа на поток, поэтому я изменил его на arrayBuffer, а затем на base64, и теперь он работает. Этот другой вопрос помог мне решить мою проблему: ссылка Спасибо, Ларри!
Спасибо за продолжение и проверку! Рад, что это работает для вас!
Если вы попытаетесь вручную загрузить его из веб-приложения, а не через API, это сработает? или вы получаете ту же ошибку?