2016-02-11 14 views
5

Tôi đang cố gắng chuyển đổi chuỗi base64 trở lại các tệp gốc. Ứng dụng từ nơi tôi cố gắng xuất các tệp này sẽ chỉ cho phép tôi xuất trong chuỗi base64. Xuất này trả về chuỗi base64 và filetype.Chuyển chuỗi base64 thành tệp

Làm cách nào để chuyển đổi các chuỗi này thành tệp gốc? Tôi đã thử những thứ như thế này, nhưng tôi không nghĩ rằng điều này sẽ làm việc với các loại tập tin khác nhau?

[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($file)) | 
    Out-File C:\ID\document.$($extension) 

Có ai cung cấp cho tôi một số ý tưởng về cách thực hiện việc này không?

Trả lời

9

Phương thức FromBase64String() chuyển đổi chuỗi được mã hóa base64 thành mảng byte. Tất cả những gì bạn cần làm là ghi mảng byte đó trở lại một tệp:

$b64  = 'AAAAAA...' 
$filename = 'C:\path\to\file' 

$bytes = [Convert]::FromBase64String($b64) 
[IO.File]::WriteAllBytes($filename, $bytes) 
+0

Cảm ơn, hoạt động hoàn hảo! – Jeroen

+0

Nó chỉ làm việc như bất cứ điều gì cho tôi .. Tôi đã đấu tranh cho giờ .. Cảm ơn ông chủ. –

+0

Trong trường hợp của tôi, văn bản Base-64 quá dài để dán vào cửa sổ PowerShell, vì vậy tôi phải làm '$ b64 = Get-Content" filePath "' – Origin

Các vấn đề liên quan