예제 #1
0
        ///// <summary>
        ///// 根据文件路径,删除文件
        ///// </summary>
        ///// <param name="filePath"></param>
        ///// <returns></returns>
        //public bool DeleteFile(string filePath)
        //{
        //    if (string.IsNullOrWhiteSpace(filePath))
        //    {
        //        return false;
        //    }
        //    return GetFileService().Delete(filePath);
        //}

        /// <summary>
        /// 根据Fid,删除文件
        /// </summary>
        /// <param name="fid"></param>
        /// <returns></returns>
        public bool DeleteFileByFid(string fid)
        {
            if (string.IsNullOrWhiteSpace(fid))
            {
                return(false);
            }

            FapAttachment attachment = _dataAccessor.Get <FapAttachment>(fid);

            if (attachment == null)
            {
                return(false);
            }

            try
            {
                FapFileInfo fileInfo = new FapFileInfo();
                fileInfo.FilePath = attachment.FilePath;
                fileInfo.FileId   = attachment.Id;

                string fileServiceType = attachment.SaveModel;
                bool   deleted         = GetFileService(fileServiceType).Delete(fileInfo);
                if (deleted)
                {
                    _dataAccessor.DeleteExec("FapAttachment", "Id=" + attachment.Id);
                }
                return(true);
            }
            catch (Exception ex)
            {
                _logger.CreateLogger <FapFileService>().LogError(ex.Message);
            }

            return(false);
        }
예제 #2
0
        public Stream GetFileStream(FapAttachment attachment)
        {
            FapFileInfo fileInfo = new FapFileInfo();

            fileInfo.FilePath = attachment.FilePath;
            fileInfo.FileId   = attachment.Id;

            string fileServiceType = attachment.SaveModel;

            return(GetFileService(fileServiceType).Download(fileInfo));
        }
예제 #3
0
        /// <summary>
        /// 上传文件
        /// </summary>
        /// <param name="stream"></param>
        /// <param name="attachement"></param>
        /// <returns></returns>
        public string UploadFile(Stream stream, FapAttachment attachement)
        {
            if (stream == null || attachement == null)
            {
                return("");
            }

            FapFileInfo fileInfo = new FapFileInfo();

            fileInfo.FileSize = (attachement.FileSize == 0 ? (stream.Length / 1024) : attachement.FileSize);
            fileInfo.FileName = attachement.FileName;
            //fileInfo.FileId = ""+attachement.Id;
            fileInfo.FileSuffix = (string.IsNullOrWhiteSpace(attachement.FileExtension) ? Path.GetExtension(attachement.FileName) : attachement.FileExtension);

            attachement.FileSize      = fileInfo.FileSize;
            attachement.FileExtension = fileInfo.FileSuffix;
            attachement.SaveModel     = this._fileServiceType;

            long id = _dataAccessor.Insert <FapAttachment>(attachement);

            fileInfo.FileId = id;

            bool success = GetFileService().Upload(stream, fileInfo, (a, b) =>
            {
                fileInfo.FilePath = b.FileFullName;
            });

            if (success)
            {
                //newAttachment.FilePath = fileInfo.FilePath;
                //dataAccessor.EUpdate<FapAttachment>(attachement, false);
                _dataAccessor.Execute("update FapAttachment set FilePath=@FilePath where Id=@Id", new DynamicParameters(new { FilePath = fileInfo.FilePath, Id = id }));
            }
            else
            {
                _dataAccessor.Delete <FapAttachment>(attachement);
            }

            return(attachement.Fid);
        }