Преобразовать строку base64 в файл и сохранить - PullRequest
0 голосов
/ 24 июня 2019

Я работаю над .net core api. Я получаю файл .zip в формате base64 на своем контроллере, я хочу преобразовать строку base64 в файл zip, сохранить ее в папке и выполнить некоторые проверки, распаковав файл и сохранив его на лазурном блобе.

Я попытался преобразовать строку 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 Framework, и он работает нормально, но не работает с ядром .Net.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...