Esempio n. 1
0
        /* 物理ファイル⇒Base64データ */
        protected void PhysicalFiletoBase64(VueMSFramework.ViewModels.Common.SpecialParts.File file)
        {
            //データがない場合は抜ける
            if (file.Url == null)
            {
                return;
            }
            var currentPath = Directory.GetCurrentDirectory();
            var wwwroot     = "/wwwroot";

            using (var fin = new StreamReader(wwwroot + file.Url))
            {
                string body = fin.ReadToEnd();
                byte[] data = System.Text.Encoding.ASCII.GetBytes(body);
                var    cn   = Convert.ToBase64String(data);
                file.Base64StringContents = cn;
            }
        }
Esempio n. 2
0
        public ActionResult <VueMSFramework.ViewModels.Common.SpecialParts.File> Upload([FromBody] VueMSFramework.ViewModels.Common.SpecialParts.File file)
        {
            Guid urlFileName = Guid.NewGuid();

            file.FileName = Path.GetFileName(file.FileName);

            //うまく取り除けないので / を後ろから取得する
            var pos = file.FileName.LastIndexOf(@"\");

            if (pos > 0)
            {
                file.FileName = file.FileName.Substring(pos + 1);
            }
            string ext = Path.GetExtension(file.FileName);

            file.UrlFileName = urlFileName.ToString() + ext;
            var f = Base64toPhysicalFile(file);

            return(Ok(f));
        }
Esempio n. 3
0
        /* Base64データ⇒物理ファイル化 */
        protected VueMSFramework.ViewModels.Common.SpecialParts.File Base64toPhysicalFile(VueMSFramework.ViewModels.Common.SpecialParts.File file)
        {
            //データがない場合は抜ける
            if (file.Base64StringContents == null)
            {
                return(file);
            }

            var currentPath    = Directory.GetCurrentDirectory();
            var wwwroot        = "/wwwroot";
            var filedeploypath = "/files/";

            var strarr = file.Base64StringContents.Split(',');

            byte[] bs;
            if (strarr.Length == 2)
            {
                //バイト型配列に戻す
                bs = Convert.FromBase64String(strarr[1]);

                file.FileType = strarr[0];
                //ファイルサイズ
                file.FileSize = bs.Length;
            }
            else
            {
                //バイト型配列に戻す
                bs = Convert.FromBase64String(strarr[0]);

                //ファイルサイズ
                file.FileSize = bs.Length;
            }


            //ファイルに保存する
            //保存するファイル名
            string url = filedeploypath + file.UrlFileName;

            //ファイルに書き込む
            FileStream outFile = new FileStream(currentPath + wwwroot + url, FileMode.Create, FileAccess.Write);

            outFile.Write(bs, 0, bs.Length);
            outFile.Close();

            file.Url = url;
            file.Base64StringContents = null;

            return(file);
        }