관련 질문:
PHP 및 웹 서비스를 사용하여 브라우저에서 바이너리 스트림 데이터를 다운로드합니다. "다운로드한 파일이 손상되었습니다."
- PHP의 hex2bin 함수에 대한 입력으로 bash의 hexdump 출력에 적합함
(전체) p12/pfx 인증서를 웹 서비스에서 수신하고 브라우저에 다운로드할 PJP 페이지로 리디렉션하려면 어떻게 변환해야 합니까? 나는 xxd
, hexdump
및 을 사용했습니다 od
.
그러나 인증서를 다운로드하기 위한 바이너리 파일을 얻기 위해 PHP의 hex2bin 함수에 대한 입력이 적합하도록 이러한 명령의 출력을 최적화할 수 있는 방법은 없습니다.
답변1
해결책은 bash의 bash 출력에서 공백을 제거하는 것입니다.
res=`xxd -p $exportedkey`
echo "${res//[[:space:]]/}"
PHP에서:
$hex = hex2bin($result);
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=hex.pfx");
header('Content-Length: '. strlen($hex));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
echo $hex;
exit();