私のアプリケーションでは、base64stringに異なるファイルがあります。 これらのbase64Stringを受け取った後、私のアプリケーションは を元のフォーマットに変換する必要があります。 これらのファイルは、pdf、txt、jpegイメージ、bmpイメージ、gifイメージ、またはpngイメージ形式です。 それぞれの形式に変換するために、このファイルの形式を知るにはどうすればよいですか。 base64stringがこの情報を与える方法はありますか? ご協力いただければ幸いです。異なるファイル形式を保存する
答えて
base64データにはファイルデータ自体のみが含まれており、メタデータはありません(ファイル名/拡張子を含む)。デコードされたbase64データの最初の数バイトを解析してファイルの種類を調べようとする可能性がありますが、サービスではHTTPヘッダー(Content-Disposition
など)にこの情報を追加する方が簡単です。
私はbase64string
からバイナリ形式に変換してディスクに保存する必要があると思います。ユーザーが関連するプログラムを使用して開くことができるように、正しいファイル拡張子または完全なファイル名を取得する必要があります。
ファイルタイプを取得する信頼できる唯一の手段は、ファイルに関連付けられたメタデータです。これがあなたのケースで利用できない場合、回避策は、ファイルの最初の数バイトを読み取ることです。多くの一般的な形式では、その形式のファイルは「マジックナンバー」と呼ばれる一連のバイトで始まる必要があります。
このWikipedia articleは、PDF、JPG、PNG、およびGIF形式の数字を提供します。 BMPファイルは通常、定数0x42 0x4D(*)で始まります。テキストファイルにはコンテンツのみが含まれているため、デフォルトのオプションである必要があります(つまり、最初の数バイトが既知の魔法番号として認識されない場合は、それがテキストファイルであると想定します)。
Base-64エンコーディング単にファイルのバイナリ表現です。バイトシーケンスに変換し、最初の数バイトを評価するだけで、ファイルが特定のタイプであることを示唆するのに十分なはずです。これは不完全な回避策であることに注意してください。例えば、マジックナンバー(例えば、「BM」)で始まるテキストファイルは、別のタイプのファイルとして分類されなくてもよい。
- 1. 画像をさまざまなファイル形式に保存する
- 2. 異なるExcelファイル形式の特定
- 3. BLOBとして保存された異なるファイル形式を印刷するもっともエレガントな方法
- 4. フォームデータをJSON形式で保存する
- 5. Nano 2.0.6 - Mac形式でファイルを保存する
- 6. 異なる形式のレンダリングアクション
- 7. JSONファイルをバイナリ形式で保存しているMongodb
- 8. データの保存形式前
- 9. .cpp形式のファイルをVCExpressに.cpp.9.0形式で保存できません。
- 10. 定期的なイベントパターンを保存するための形式は?
- 11. 異なる背景色のMATLAB図形を保存します
- 12. ファイルを対話形式で保存しますか?
- 13. データベースにhtml形式のテキストを保存
- 14. レポートをPDF形式で保存
- 15. Excelファイルの[名前を付けて保存]ダイアログのフィルタファイル形式
- 16. バイト配列をRAWファイル形式に保存
- 17. アスキー形式で保存されたオーディオ形式
- 18. 静的資産(ファイル)をrails 3.1(pdf形式、xlsファイルなど)に保存するのに最適な場所
- 19. SL3形式の異なるデータコンテキスト
- 20. レールのバリデーションメソッドの異なる形式
- 21. LINQの二つの異なる形式
- 22. CSVをHTMLの表形式に変換してHTMLファイルに保存する
- 23. シンプルな図形を描いてファイルに保存する(PDF)
- 24. Powershellを使用してデータテーブルをCSV形式で保存する
- 25. イメージをPNG形式に保存する方法は?
- 26. Openxml - 非標準のxlsxを標準形式で保存する
- 27. Webページをjava形式でPDFに保存する方法は?
- 28. UIWebViewのコンテンツを.webarchive形式で保存するには?
- 29. jantperviewerの.html以外の形式でレポートを保存する
- 30. FullCalendarからJSONイベントデータをiCalendar形式で保存する方法