文件转byte[] byte[]转base64 各类转换

/* - - - - - - - - - - - - - - - - - - - - - - - - 
 * 将文件转换为Bytes
 * - - - - - - - - - - - - - - - - - - - - - - - */

/// <summary>
/// 将文件转换为Bytes
/// </summary>
/// <param name="fileLocation">文件位置</param>
/// <returns></returns>
public byte[] FileBytes(string fileLocation)
{
    
    
    try
    {
    
    
        FileStream fs = new FileStream(fileLocation, FileMode.OpenOrCreate, FileAccess.Read);
        byte[] fileDatas = new byte[fs.Length];
        fs.Read(fileDatas, 0, System.Convert.ToInt32(fs.Length));
        fs.Close();
        return fileDatas;
    }
    catch (Exception)
    {
    
    
        return new byte[] {
    
     };
    }
}

/* - - - - - - - - - - - - - - - - - - - - - - - - 
 * C# Stream 和 byte[] 之间的转换
 * - - - - - - - - - - - - - - - - - - - - - - - */

/// <summary>
///  C# Stream 和 byte[] 之间的转换
/// </summary>
/// <param name="stream"></param>
/// <returns></returns>
public byte[] StreamToBytes(Stream stream)
{
    
    
    byte[] bytes = new byte[stream.Length];

    stream.Read(bytes, 0, bytes.Length);

    // 设置当前流的位置为流的开始 

    stream.Seek(0, SeekOrigin.Begin);

    return bytes;

}

/// <summary>
/// 将 byte[] 转成 Stream
/// </summary>
/// <param name="bytes"></param>
/// <returns></returns>
public Stream BytesToStream(byte[] bytes)
{
    
    
    Stream stream = new MemoryStream(bytes);
    return stream;
}

/* - - - - - - - - - - - - - - - - - - - - - - - - 
 * Stream 和 文件之间的转换
 * - - - - - - - - - - - - - - - - - - - - - - - */
 
/// <summary>
/// 将 Stream 写入文件
/// </summary>
public void StreamToFile(Stream stream,string fileName)
{
    
    
    // 把 Stream 转换成 byte[]
    byte[] bytes = new byte[stream.Length];
    stream.Read(bytes, 0, bytes.Length);
    // 设置当前流的位置为流的开始
    stream.Seek(0, SeekOrigin.Begin);

    // 把 byte[] 写入文件
    FileStream fs = new FileStream(fileName, FileMode.Create);
    BinaryWriter bw = new BinaryWriter(fs);
    bw.Write(bytes);
    bw.Close();
    fs.Close();
}

/// <summary>
/// 从文件读取 Stream
/// </summary>
public Stream FileToStream(string fileName)
{
    
                
    // 打开文件
    FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
    // 读取文件的 byte[]
    byte[] bytes = new byte[fileStream.Length];
    fileStream.Read(bytes, 0, bytes.Length);
    fileStream.Close();
    // 把 byte[] 转换成 Stream
    Stream stream = new MemoryStream(bytes);
    return stream;
}

/* - - - - - - - - - - - - - - - - - - - - - - - - 
 * 字节流转Word
 * - - - - - - - - - - - - - - - - - - - - - - - */

/// <summary>
/// 字节流转Word
/// </summary>
/// <param name="bytes">文档字节流</param>
/// <returns></returns>
public static Document BytesToDoc(byte[] bytes)
{
    
    
    using (MemoryStream inStream = new MemoryStream(bytes))
    {
    
    
        Document doc = new Document(inStream);
        return doc;
    }
}

/* - - - - - - - - - - - - - - - - - - - - - - - - 
 * word转图片
 * - - - - - - - - - - - - - - - - - - - - - - - */

/// <summary>
/// word转图片
/// </summary>
/// <param name="doc"></param>
/// <returns>图片路径集合</returns>
public static List<string> DocToImg(Document doc)
{
    
    

    ImageSaveOptions iso = new ImageSaveOptions(SaveFormat.Png) {
    
     Resolution = 256, JpegQuality = 100 };
    var paths = new List<string>();
    var basePath = "要保存的图片的虚拟路径";
    for (int i = 0; i < doc.PageCount; i++)
    {
    
    
        iso.PageIndex = i;
        var url = $"{basePath}/{DateTime.Now.Ticks}.png";
        var distPath = FilePath.MapPath(url);
        if (!Directory.Exists(Path.GetDirectoryName(distPath)))
        {
    
    
            Directory.CreateDirectory(Path.GetDirectoryName(distPath));
        }
        doc.Save(distPath, iso);
        paths.Add(url);
    }
    return paths;
}


/* - - - - - - - - - - - - - - - - - - - - - - - - 
 * 文件转Base64码
 * - - - - - - - - - - - - - - - - - - - - - - - */
 
/// <summary>
/// 文件转Base64码
/// </summary>
/// <param name="fileLocation">文件位置</param>
/// <returns></returns>
public string ImgToBase64String(string fileLocation)
{
    
    
    MemoryStream ms = new MemoryStream();
    try
    {
    
    
        Bitmap bmp = new Bitmap(fileLocation);
        bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
        byte[] arr = new byte[ms.Length];
        ms.Position = 0;
        ms.Read(arr, 0, (int)ms.Length);
        return Convert.ToBase64String(arr);
    }
    catch (Exception ex)
    {
    
    
        Log.WriteLog4Ex("图片转base64错误:", ex);
        return "";
    }
    finally
    {
    
    
        ms.Close();
    }
}

/* - - - - - - - - - - - - - - - - - - - - - - - - 
 * base64文件字符串转byte[]字节流
 * - - - - - - - - - - - - - - - - - - - - - - - */

//base64文件字符串转byte[]字节流
byte[] bt = Convert.FromBase64String(strBase64);

猜你喜欢

转载自blog.csdn.net/weixin_43972758/article/details/116231673