将base64字符串转换为文件并保存

时间:2019-06-24 12:07:51

标签: asp.net-core .net-core base64

我正在研究.net核心api。我正在控制器中接收base64格式的.zip文件,我想将base64字符串转换为zip文件,将其保存在文件夹中,并通过解压缩文件并将其存储在天蓝色的blob中进行一些验证。

我尝试将base64字符串转换为文件并将其保存在D驱动器中,但这给我一个错误

  

“拒绝访问路径'D:\ Tomcat \ webapps \ detvideos1 \ ContentTempPath \ CIPQA0200 \ abc.zip'。

UploadContent业务逻辑代码:

public static void StartTask(JObject jContent)
{
    jConfig = LoadConfigJSon();
    string path = Convert.ToString(jConfig["ContentUploadPath"]);  //ContentUploadPath = D:\\Tomcat\\webapps\\detvideos1\\ContentTempPath
    FileWriter fw = new FileWriter();
    byte[] file = Convert.FromBase64String(Convert.ToString(jContent["CONTENT"][0]["FILE"]));


    if (!Directory.Exists(path))
        Directory.CreateDirectory(path);

    //path = Convert.ToString(jConfig["ContentUploadPath"]) + "\\" + Convert.ToString(jContent["CLIENTID"]) + Convert.ToString(jContent["REPCODE"]) + "\\" + Convert.ToString(jContent["FILENAME"]);
    path = Convert.ToString(jConfig["ContentUploadPath"]) + "\\" + Convert.ToString(jContent["CLIENTID"]) + Convert.ToString(jContent["REPCODE"]) + "\\" + Convert.ToString(jContent["CONTENT"][0]["FILENAME"]);

    if (Directory.Exists(path))
    {
        fw.DeleteDir(path);
    }
    if(!Directory.Exists(path))
    {
        Directory.CreateDirectory(path);
    }
    File.WriteAllBytes(path, file);  //I'm getting an error here
}

向控制器请求参数

{
"CLIENTID": "CIPQ",
"REPCODE": "A0200",
"CONTENT": [
    {
        "FILE": "base 64 string....",
        "FILENAME": "abc.zip",
        "FILESIZE": "1200"
    },
    {
        "FILE": "base 64 string....",
        "FILENAME": "def.png",
        "FILESIZE": "14200"
    }
    ]
}

我已经将base64字符串转换为字节数组,并尝试将字节数组保存到文件中,但这给我一个错误,表明访问被拒绝。

我正在使用.Net框架做同样的事情,并且工作正常,但这不适用于.Net核心。

0 个答案:

没有答案