在我的應用程序中,我收到base64string中的不同文件。 收到這些base64Strings後,我的應用程序需要將它們 轉換成它們的原始格式。 這些文件可能是pdf,txt,jpeg圖像,bmp圖像,gif圖像或png圖像格式。 我怎麼知道這個文件是什麼格式,以便將它們轉換爲他們的 各自的格式。有什麼方法base64string給這個信息。 任何幫助將不勝感激。'保存不同的文件格式
0
A
回答
1
base64數據本身只包含文件數據,沒有關於它的元數據(包括文件名/擴展名)。您可能會嘗試解析解碼後的base64數據的前幾個字節以嘗試查找文件類型,但更容易的方法是將服務在某些HTTP標頭中添加此信息(例如Content-Disposition
)。
1
我想你只需要將它從base64string
轉換成二進制格式並保存在磁盤上。您只需要獲取正確的文件擴展名或完整的文件名,以便用戶可以使用關聯的程序將其打開。
0
獲取文件類型的唯一可靠方法是通過與文件關聯的元數據。如果這不適用於您的情況,解決方法是讀取文件的前幾個字節。許多常見格式要求該格式的文件以一系列字節開頭,稱爲「幻數」。
此Wikipedia article爲PDF,JPG,PNG和GIF格式提供了maic數字。 BMP文件通常以常量0x42 0x4D(*)開頭。由於文本文件僅包含內容,因此它需要是默認選項(即,如果前幾個字節未被識別爲已知幻數,則假定它是文本文件)。
Base-64編碼只是文件的二進制表示。轉換回字節序列並評估前幾個字節應該足以表明文件具有某種類型。請注意,這是一個不完美的解決方法;例如,碰巧以幻數(例如,「BM」)開頭的文本文件可能被誤分類爲另一類型的文件。
相關問題
- 1. 保存的文件格式
- 2. 將ASP頁面保存爲不同的文件格式,如XLS
- 3. 設計模式相同的數據保存到不同的文件格式
- 4. 如何以不同格式保存文件?
- 5. 使用一個文件上傳器(MVC)保存不同的格式文件
- 6. 我想保存不同的日期格式保存在yii2 datepicker
- 7. 的Liferay:PDF格式保存文件名
- 8. 使用FileInputStream保存xls文件:文件格式與其擴展名不同
- 9. Couchbase lite文件保存格式
- 10. 將文件保存爲jpg格式
- 11. 如何以.rtf格式保存文件
- 12. Nano 2.0.6 - 以Mac格式保存文件
- 13. excel加載保存csv文件格式
- 14. 保存文件Windows Iot Core jpg格式
- 15. 保存不同版本的.jar文件
- 16. 保存文件Tkinter的不同列
- 17. System.Windows.Forms.SaveFileDialog:使用相同的文件擴展名保存多個文件格式
- 18. Intellij保存所有不會重新格式化它保存的所有文件
- 19. 的SimpleXMLElement將不保存可讀格式良好的文件
- 20. 保存文件不保存文件
- 21. grep匹配模式並保存到不同的文件
- 22. Vim以編程方式保存不同的文件擴展名
- 23. 下載文件同步 - 不保存文件夾中的文件
- 24. CacheHelper以不同名稱保存相同的緩存文件
- 25. 導出到不同的文件格式
- 26. 在不同的文件格式
- 27. 識別不同的Excel文件格式
- 28. 用c#保存XML文件並保留空元素的格式
- 29. 保存模式下的jquery攝像機不保存文件
- 30. 保存listview數據到相同的excel文件,但不同的表格