Esempio n. 1
0
        //[HttpPost]
        public JsonResult Post(string id)
        {
            string userid   = CommonHelper.GetPostValue("key");
            string filename = CommonHelper.GetPostValue("fn");
            string type     = CommonHelper.GetPostValue("type").ToString("PublicFile");

            OrignalTypeEnum saveType = type.Equals("GuideFile") || type.Equals("3")
                ? OrignalTypeEnum.GuideFile
                : type.Equals("ActiveFile") || type.Equals("1")
                    ? OrignalTypeEnum.ActiveFile
                    : OrignalTypeEnum.PublicFile;

            //
            //这个方法暂时这样,需要优化
            //
            userid = LoginHelper.UserId.ToString();
            long lUserId = userid.ToLong(-1);

            //string.IsNullOrEmpty(sign) ||
            if (string.IsNullOrEmpty(userid) || lUserId <= 0)
            {
                return(Json(new FileUploadEntity {
                    ErrorCode = "10000", ErrorMessage = "非法请求"
                }));
            }
            T_BG_User bgUser = _bgUserService.GetUserById(userid.ToLong(-1));

            if (bgUser == null)
            {
                return(Json(new FileUploadEntity {
                    ErrorCode = "10000", ErrorMessage = "请重新登录"
                }));
            }
            if (HttpContext.Request.Files.Count > 0)
            {
                try
                {
                    HttpPostedFile file = System.Web.HttpContext.Current.Request.Files[0];
                    if (file.ContentLength <= 0)
                    {
                        return(Json(new FileUploadEntity {
                            ErrorCode = "10000", ErrorMessage = "上传的文档为空!"
                        }));
                    }

                    FileExtension[] fileExs = new FileExtension[] { FileExtension.DOC, FileExtension.DOCX, FileExtension.PDF };
                    string          fileExt = FileValidation.FileExtension(file, fileExs);
                    if (string.IsNullOrEmpty(fileExt))
                    {
                        return(Json(new FileUploadEntity {
                            ErrorCode = "10000", ErrorMessage = "请上传WORD、PDF格式的文档!"
                        }));
                    }

                    string originFileName = Regex.Replace(file.FileName, "." + fileExt, "." + fileExt, RegexOptions.IgnoreCase);
                    string savename       = Guid.NewGuid().ToString("N");
                    if (!string.IsNullOrEmpty(filename))
                    {
                        savename = filename.Replace(string.Format("{0}_", LoginHelper.UserId), "");
                    }
                    string ofile       = originFileName;
                    string newFileName = OriginalSaveHelper.CreateNewSaveFileName(userid, savename, fileExt);
                    string savePath    = OriginalSaveHelper.GetSavePath(newFileName, fileExt, type);
                    string fn          = newFileName.Replace(string.Format(".{0}", fileExt), "");
                    if (!Directory.Exists(savePath))
                    {
                        Directory.CreateDirectory(savePath);
                    }
                    string strMs = string.Empty;
                    //string exception = "服务端异常";
                    string newFilePath = string.Format(@"{0}\{1}", savePath, newFileName);
                    file.SaveAs(newFilePath);
                    int iPageNum = 0;
                    fileExt = fileExt.ToLower();
                    if (fileExt == "pdf" || fileExt.EndsWith("pdf"))
                    {
                        iPageNum = PdfSaveHelper.GetPdfFilePages(newFilePath, out strMs);
                    }
                    //如果iPageNum 不更新或不上传
                    if (iPageNum < 0)
                    {
                        return(Json(new FileUploadEntity {
                            ErrorCode = "10000", ErrorMessage = "服务器不能解析上传的pdf,请选择其他文件重新上传!"
                        }));
                    }

                    T_BG_UpFiles bgUpFiles = new T_BG_UpFiles {
                        filename = fn, filehash = FileHelper.GetFileHash(newFilePath), userid = lUserId, fileoriginname = originFileName, filepath = newFilePath, ext = fileExt, addtime = DateTime.Now, type = saveType.ToInt(0)
                    };

                    string fileorigin = originFileName.ReplaceSqlTag();
                    long   cnt        = _bgUpFilesService.GetListByUserIdAndFileNameAndExt(originFileName, lUserId, fileExt, saveType.ToInt(0));
                    long   reslt      = _bgUpFilesService.Add(bgUpFiles);
                    if (reslt > 0)
                    {
                        string oname  = fileorigin.ToLower().Replace("." + bgUpFiles.ext.ToLower(), "");
                        string attach = cnt <= 0
                            ? string.Format("{0}.{1}", oname, bgUpFiles.ext)
                            : string.Format("{0}({1}).{2}", oname, cnt, bgUpFiles.ext);

                        return(Json(new FileUploadEntity {
                            ErrorCode = "00000", ErrorMessage = fn, Attach = attach, FilePath = bgUpFiles.filepath, FileType = fileExt
                        }));
                    }
                    else
                    {
                        return(Json(new FileUploadEntity {
                            ErrorCode = "10003", ErrorMessage = "服务端保存文件失败"
                        }));
                    }
                }
                catch (Exception)
                {
                    return(Json(new FileUploadEntity {
                        ErrorCode = "10000", ErrorMessage = "服务端异常"
                    }));
                }
            }
            else
            {
                return(Json(new FileUploadEntity {
                    ErrorCode = "10002", ErrorMessage = "请选择文件"
                }));
            }
        }
        // GET: EmailUppload
        public JsonResult SendFile()
        {
            string userid = CommonHelper.GetPostValue("key");
            string type   = "EmailFile"; //CommonHelper.GetPostValue("type").ToString("PublicFile");

            OrignalTypeEnum saveType = OrignalTypeEnum.EmailFile;

            userid = LoginHelper.UserId.ToString();
            long lUserId = userid.ToLong(-1);

            if (string.IsNullOrEmpty(userid) || lUserId <= 0)
            {
                return(Json(new FileUploadEntity {
                    ErrorCode = "10000", ErrorMessage = "非法请求!"
                }));
            }
            T_BG_User bgUser = _bgUserService.GetUserById(userid.ToLong(-1));

            if (bgUser == null)
            {
                return(Json(new FileUploadEntity {
                    ErrorCode = "10000", ErrorMessage = "请重新登录!"
                }));
            }

            if (HttpContext.Request.Files.Count > 0)
            {
                try
                {
                    HttpPostedFile file = System.Web.HttpContext.Current.Request.Files[0];
                    if (file.ContentLength <= 0)
                    {
                        return(Json(new FileUploadEntity {
                            ErrorCode = "10000", ErrorMessage = "上传的附件为空!"
                        }));
                    }
                    //FileExtension[] fileExs = new FileExtension[] { FileExtension.DOC, FileExtension.DOCX, FileExtension.PDF };
                    //string fileExt = FileValidation.FileExtension(file, fileExs);
                    //if (string.IsNullOrEmpty(fileExt))
                    //{
                    //    return Json(new FileUploadEntity { ErrorCode = "10000", ErrorMessage = "请上传WORD、PDF格式的文档!" });
                    //}

                    string fileExt        = Path.GetExtension(file.FileName);
                    string originFileName = Regex.Replace(file.FileName, "." + fileExt, "." + fileExt, RegexOptions.IgnoreCase);
                    string savePath       = OriginalSaveHelper.GetEmailSavePath(fileExt.Replace(".", ""), type);
                    if (string.IsNullOrEmpty(savePath))
                    {
                        return(Json(new FileUploadEntity {
                            ErrorCode = "10000", ErrorMessage = "上传的路径获取失败!"
                        }));
                    }
                    if (!Directory.Exists(savePath))
                    {
                        Directory.CreateDirectory(savePath);
                    }
                    string newFilePath = string.Format(@"{0}\{1}", savePath, file.FileName);
                    file.SaveAs(newFilePath);

                    T_BG_UpFiles bgUpFiles = new T_BG_UpFiles {
                        filename = file.FileName, filehash = FileHelper.GetFileHash(newFilePath), userid = lUserId, fileoriginname = originFileName, filepath = newFilePath, ext = fileExt, addtime = DateTime.Now, type = saveType.ToInt(0)
                    };
                    //long cnt = _bgUpFilesService.GetListByUserIdAndFileNameAndExt(originFileName, lUserId, fileExt, saveType.ToInt(0));
                    long reslt = _bgUpFilesService.Add(bgUpFiles);
                    if (reslt > 0)
                    {
                        return(Json(new FileUploadEntity {
                            ErrorCode = "00000", ErrorMessage = "上传成功", Attach = file.FileName, FilePath = bgUpFiles.filepath, FileType = fileExt
                        }));
                    }
                    else
                    {
                        return(Json(new FileUploadEntity {
                            ErrorCode = "10003", ErrorMessage = "服务端保存文件失败"
                        }));
                    }
                }
                catch (Exception)
                {
                    return(Json(new FileUploadEntity {
                        ErrorCode = "10000", ErrorMessage = "服务端异常"
                    }));
                }
            }
            else
            {
                return(Json(new FileUploadEntity {
                    ErrorCode = "10002", ErrorMessage = "请选择附件!"
                }));
            }
        }