Этот проект является проектом Apple Wallet, который у меня есть, но в PHP-коде, с которым я сталкиваюсь с проблемами, не так много помощи, доступной по моему вопросу PHP, который пока не открыт, ответа пока нет, теперь я решил преобразовать в coldfusion.
Я могу сохранить файл ZIP/PKPASS в двоичном формате в BLOB. Когда я отправляю запрос PHP API GET на получение карты (двоичный zip/pkpass), он возвращает мне двоичный поток, см. Экран прикрепления ниже.
того же результата, которого я хочу добиться в coldfusion, когда я отправляю запрос на код API coldfusion, также прикрепленный ниже.
Я пытаюсь преобразовать PHP-код в coldfusion (lucee). Двоичный код в базе данных, который представляет собой zip-файл, но имеет расширение «.pkpass», имя поля базы данных — «данные».
когда я запускаю код coldfusion, он выдает ошибку «Ошибка поврежденного содержимого».
PHP-код:
$myPass = $result->fetch();
$data = $myPass['data']; //zip/pkpass file Binary code from DB
$nameFile = 'passbook_'.time().'.pkpass';
file_put_contents($nameFile, $data);
$stream = function () use ($nameFile) {
readfile($nameFile);
};
return $app->stream($stream, 200, array(
'Pragma' => 'no-cache',
'Cache-Control' => 'private,false',
'Content-Transfer-Encoding' => 'binary',
'Content-Disposition' => 'inline; filename="'.basename($nameFile).'"',
'Content-Type' => 'application/vnd.apple.pkpass',
'Content-length' => filesize($nameFile),
'Content-Disposition' => 'attachment; filename="'.$nameFile.'"',
'Last-Modified' => gmdate('D, d M Y H:i:s T')
));
Код Coldfusion: НЕ РАБОТАЕТ Нужна помощь
<cfset filename = getPass.serial_number&'_'&createUUID()&'.pkpass'>
<cfheader name="Pragma" value="no-cache">
<cfheader name="Cache-Control" value="private,false">
<cfheader name="Content-Transfer-Encoding" value="binary">
<cfheader name="Content-Disposition" value="inline; filename=#filename#">
<cfheader name="Content-Type" value="'application/vnd.apple.pkpass">
<cfheader name="Content-Disposition" value="attachment; filename=#filename#">
<cfheader name="Content-Disposition" value="#DateFormat(getPass.updated_at, "yyyy-mm-dd")#' '#TimeFormat(getPass.updated_at, 'hh:mm:ss')#">
<cfcontent type="application/x-zip-compressed" variable="#BinaryDecode(getPass.data, 'Base64')#"> <!--- Binary Data from db 'getPass.data' --->
not working
. - person Dan Bracuk   schedule 11.07.2017