2011-08-11 83 views
0

在我的應用程序中,我收到base64string中的不同文件。 收到這些base64Strings後,我的應用程序需要將它們 轉換成它們的原始格式。 這些文件可能是pdf,txt,jpeg圖像,bmp圖像,gif圖像或png圖像格式。 我怎麼知道這個文件是什麼格式,以便將它們轉換爲他們的 各自的格式。有什麼方法base64string給這個信息。 任何幫助將不勝感激。'保存不同的文件格式

回答

1

base64數據本身只包含文件數據,沒有關於它的元數據(包括文件名/擴展名)。您可能會嘗試解析解碼後的base64數據的前幾個字節以嘗試查找文件類型,但更容易的方法是將服務在某些HTTP標頭中添加此信息(例如Content-Disposition)。

1

我想你只需要將它從base64string轉換成二進制格式並保存在磁盤上。您只需要獲取正確的文件擴展名或完整的文件名,以便用戶可以使用關聯的程序將其打開。

0

獲取文件類型的唯一可靠方法是通過與文件關聯的元數據。如果這不適用於您的情況,解決方法是讀取文件的前幾個字節。許多常見格式要求該格式的文件以一系列字節開頭,稱爲「幻數」。

Wikipedia article爲PDF,JPG,PNG和GIF格式提供了maic數字。 BMP文件通常以常量0x42 0x4D(*)開頭。由於文本文件僅包含內容,因此它需要是默認選項(即,如果前幾個字節未被識別爲已知幻數,則假定它是文本文件)。

Base-64編碼只是文件的二進制表示。轉換回字節序列並評估前幾個字節應該足以表明文件具有某種類型。請注意,這是一個不完美的解決方法;例如,碰巧以幻數(例如,「BM」)開頭的文本文件可能被誤分類爲另一類型的文件。

相關問題