web-dev-qa-db-ja.com

Base64テキストとして受信した電子メールの添付ファイルをデコードする方法

純粋にテキストである電子メールバックアップファイルがあります。添付されているドキュメント(PDF、画像、Wordファイル)を通常のファイルとして取得するにはどうすればよいですか?

7
13thOlympian
  1. メールに表示される長いテキスト文字列を選択します。これはおそらく添付ファイルの1つであり、通常は次のように始まります。

    --bcaec554d754b0f76a04d9fda578--
    --bcaec554d754b0f77204d9fda57a
    Content-Type: application/pdf; name="test.pdf"
    Content-Disposition: attachment; filename="Otest.pdf"
    Content-Transfer-Encoding: base64
    X-Attachment-Id: 9ba6310dffca527f_0.1
    
  2. この長い文字列をコピーして、Base64デコーダーに貼り付けます ここにあります

  3. 出力をダウンロードし、適切な拡張子を追加して名前を変更します。例えば ​​testfile.pdfまたはfilename.docx

そこに行きます。 Base64デコードを使用して、失われた添付ファイルを再作成しました。

10
13thOlympian

これはPHPファイルにデコードする方法です

 function base64_to_jpeg( $inputfile, $outputfile ) { 
  /* read data (binary) */ 
  $ifp = fopen( $inputfile, "rb" ); 
  $imageData = fread( $ifp, filesize( $inputfile ) ); 
  fclose( $ifp ); 
  /* encode & write data (binary) */ 
  $ifp = fopen( $outputfile, "wb" ); 
  fwrite( $ifp, base64_decode( $imageData ) ); 
  fclose( $ifp ); 
  /* return output filename */ 
  return( $outputfile ); 
}

webで表示したい/ HTMLを使用したい場合はHTMLで

<img src="data:image/png;base64,Your_Base_64_Code_Here">

CSSの背景として使用するために使用できます:

url('data:image/png;base64,Your_Base_64_Code_Here')
0
ShaH