Exemple #1
0
        public JsonResult UploadFile()
        {
            //下面自定义的Model,实例化一下
            uploadResult result = new uploadResult();

            try
            {
                var    oFile = Request.Form.Files["txt_file"];
                Stream sm    = oFile.OpenReadStream();
                result.fileName = DateTime.Now.ToString("MMddHHmmss") + ".jpg";
                string path     = Path.GetFullPath("wwwroot/Image/");
                var    fileName = Path.Combine(path, result.fileName);
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                // string filename = AppContext.BaseDirectory + "/Image/" + DateTime.Now.ToString("yyyymmddhhMMssss") + Guid.NewGuid().ToString() + ".png";
                FileStream fs     = new FileStream(fileName, FileMode.Create);
                byte[]     buffer = new byte[sm.Length];
                sm.Read(buffer, 0, buffer.Length);
                fs.Write(buffer, 0, buffer.Length);
                fs.Dispose();
            }
            catch (Exception ex)
            {
                result.error = ex.Message;
            }
            return(Json(result));
        }
        //维修上报上传视频至本地
        public JsonResult UpLoadfileVideo()
        {
            //var userName = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.Name).Value;
            uploadResult result = new uploadResult();

            try
            {
                string uploadTime  = DateTime.Now.ToString("yyyy/MM/dd");//从数据库读取当日存在维修项目数量
                string uploadTime1 = DateTime.Now.ToString("yyyyMMdd");
                var    projects    = _context.WXProjects.ToList();
                int    offset      = 1;
                int    maxNum      = 0;
                foreach (WXProject project in projects)
                {
                    if (project.ID.Substring(0, 8) == uploadTime1)
                    {
                        //判断是否有中间数字文件被删除后导致计数与有ID发生冲突
                        string incomingData = project.ID.Substring(8, 4);
                        int    parsedResult;

                        if (int.TryParse(incomingData, out parsedResult))
                        {
                            if (maxNum <= parsedResult)
                            {
                                maxNum = parsedResult;
                            }
                        }
                        offset++;
                    }
                }
                ;
                maxNum = maxNum + 1;
                string offsetString  = Convert.ToString(maxNum);
                string offsetString2 = "0000" + offsetString;
                offsetString2 = offsetString2.Substring(offsetString.Length);
                string    ID         = uploadTime1 + offsetString2;
                var       folderName = ID;
                IFormFile oFile      = Request.Form.Files["uploadfiles"];
                Stream    sm         = oFile.OpenReadStream();

                result.fileName = DateTime.Now.ToString("yyyyMMddhhmmss") + "_" + oFile.FileName;
                result.filePath = "../../Report/" + folderName + "/video/" + result.fileName;

                var filepath = _environment.ContentRootPath + "/wwwroot/Report/" + folderName + "/video";
                if (!Directory.Exists(filepath))
                {
                    Directory.CreateDirectory(filepath);
                }
                string     filename = filepath + "/" + result.fileName;
                FileStream fs       = new FileStream(filename, FileMode.Create);
                byte[]     buffer   = new byte[sm.Length];
                sm.Read(buffer, 0, buffer.Length);
                fs.Write(buffer, 0, buffer.Length);
                fs.Dispose();
            }
            catch (Exception ex)
            {
            }
            return(Json(result));
        }
        public JsonResult UpLoadfile()
        {
            var          userId = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;
            uploadResult result = new uploadResult();

            try{
                IFormFile oFile = Request.Form.Files["uploadfiles"];
                Stream    sm    = oFile.OpenReadStream();
                result.fileName = DateTime.Now.ToString("yyyyMMddhhmmss") + "_" + oFile.FileName;
                result.filePath = "../../user/" + userId + "/" + result.fileName;

                var filepath = _environment.ContentRootPath + "/wwwroot/user/" + userId;
                if (!Directory.Exists(filepath))
                {
                    Directory.CreateDirectory(filepath);
                }
                string     filename = filepath + "/" + result.fileName;
                FileStream fs       = new FileStream(filename, FileMode.Create);
                byte[]     buffer   = new byte[sm.Length];
                sm.Read(buffer, 0, buffer.Length);
                fs.Write(buffer, 0, buffer.Length);
                fs.Dispose();

                var imgpath = _environment.ContentRootPath + "/wwwroot/user/" + userId + "/" + result.fileName;
                using (Image <Rgba32> image = Image.Load(imgpath))
                {
                    var exif = image.MetaData.ExifProfile;
                    if (exif != null)
                    {
                        if (exif.GetValue(ExifTag.DateTime) != null && exif.GetValue(ExifTag.GPSLongitude) != null)
                        {
                            result.takeTime = exif.GetValue(ExifTag.DateTime).ToString();
                            var Lng = exif.GetValue(ExifTag.GPSLongitude).ToString();
                            var Lat = exif.GetValue(ExifTag.GPSLatitude).ToString();
                            result.takeLng = ChangeCoordinate(exif, Lng);
                            result.takeLat = ChangeCoordinate(exif, Lat);
                        }
                        else
                        {
                            result.error = "图片EXIF信息不全";
                            // result.takeTime = "2018:03:04 22:28:56";
                            // Random r = new Random();
                            // int rn = r.Next(80,100);
                            // int rg = r.Next(0,35);
                            // decimal lng = Convert.ToDecimal(120.49) + Convert.ToDecimal(rn)/10000;
                            // decimal lat = Convert.ToDecimal(36.16) + Convert.ToDecimal(rg)/10000;
                            // result.takeLng = lng;
                            // result.takeLat = lat;
                        }
                    }
                    else
                    {
                        result.error = "该图片非手机或照相机拍摄的原图";
                        // result.takeTime = "2018:03:04 22:28:56";
                        // Random r = new Random();
                        // int rn = r.Next(80,100);
                        // int rg = r.Next(0,35);
                        // decimal lng = Convert.ToDecimal(120.49) + Convert.ToDecimal(rn)/10000;
                        // decimal lat = Convert.ToDecimal(36.16) + Convert.ToDecimal(rg)/10000;
                        // result.takeLng = lng;
                        // result.takeLat = lat;
                    }
                }
            }
            catch (Exception ex) {
                result.error = ex.Message;
            }

            return(Json(result));
        }