【问题标题】:How to convert Base64 string to file(Docs) in c# and save it in server?如何在 C# 中将 Base64 字符串转换为文件(Docs)并将其保存在服务器中?
【发布时间】:2021-11-10 01:23:23
【问题描述】:

我正在开发一个应用程序,我将上传的文档作为 Base64 字符串接收,现在我必须将其转换为原始格式并将其保存在 application("~/files/docs/") 中的某个位置

foreach (var fat in files)
    {
       var fileContent = fat.file;
                                           
       string FileExt = Path.GetExtension(fat.name).ToUpper();
                                           
       if (FileExt == ".PDF" || FileExt == ".PPT" || FileExt == ".DOC" || FileExt == ".DOCX" || FileExt == ".XLSX" || FileExt == ".XLS" || FileExt == ".JPG"){}
    }

有人可以指导我怎么做吗?

【问题讨论】:

    标签: asp.net-mvc base64 asp.net-ajax


    【解决方案1】:

    好吧,我想通了

    
    
       string mystr = fileContent.Replace("base64,",string.Empty);
    
                                                   
        var testb = Convert.FromBase64String(mystr);
    
                                                    
       var file = Server.MapPath("~/Documents/"+fat.name);
       System.IO.File.WriteAllBytes(file, testb);
    

    这行得通,只需编写 base64 即可,但 javascript 会在每个 base64 字符串前面加上“base64”文本,因为除非删除它,否则您无法写入文件,因此我使用字符串替换来实现它,并且之后它的编写效果很好。我已经用 pdf、doc 和 pptx 文件对此进行了测试,它们都可以工作。

    【讨论】:

    • 但 javascript 会在每个 base64 字符串前加上“base64” - 在数据 uris 中,您可以在数据前面找到“base64”,例如data:image/png;base64,iVBORw0...,但通常不是在 javascript base64 编码的字符串中,至少我从来没有读过这个。所以你收到了数据uri的一部分?请澄清。
    • @jps 是的,我正在接收数据 URI 的一部分,然后在将字节写入本地文件夹之前用空字符串替换“base64”部分。对不起,我对 Javascript 和 base64 编码解码没有太多经验,这是我作为 Web 开发人员的第一份工作,我只有 3 个月的 c# 和 asp.net MVC 经验,因为它是自学的我缺乏太多的技能和知识,所以我正在努力学习新事物。
    猜你喜欢
    • 1970-01-01
    • 2015-03-02
    • 1970-01-01
    • 2011-01-20
    • 2011-11-14
    • 1970-01-01
    • 2015-08-14
    相关资源
    最近更新 更多