Format() 공개 정적인 메소드

public static Format ( string originFileName, string pathFormat ) : string
originFileName string
pathFormat string
리턴 string
예제 #1
0
    public override void Process()
    {
        byte[] uploadFileBytes = null;
        string uploadFileName  = null;
        Stream fileStream      = null;

        if (UploadConfig.Base64)
        {
            uploadFileName  = UploadConfig.Base64Filename;
            uploadFileBytes = Convert.FromBase64String(Request[UploadConfig.UploadFieldName]);
        }
        else
        {
            var file = Request.Files[UploadConfig.UploadFieldName];
            uploadFileName = file.FileName;

            if (!CheckFileType(uploadFileName))
            {
                Result.State = UploadState.TypeNotAllow;
                WriteResult();
                return;
            }
            if (!CheckFileSize(file.ContentLength))
            {
                Result.State = UploadState.SizeLimitExceed;
                WriteResult();
                return;
            }

            //uploadFileBytes = new byte[file.ContentLength];
            try
            {
                //file.InputStream.Read(uploadFileBytes, 0, file.ContentLength);
                fileStream = file.InputStream;
            }
            catch (Exception)
            {
                Result.State = UploadState.NetworkError;
                WriteResult();
            }
        }

        Result.OriginFileName = uploadFileName;

        var savePath  = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat);
        var localPath = Server.MapPath(savePath);

        try
        {
            if (!Directory.Exists(Path.GetDirectoryName(localPath)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(localPath));
            }
            File.WriteAllBytes(localPath, uploadFileBytes);
//            var key = OssHelper.PutObject(fileStream, savePath);
//            Result.Url = "http://img.yoopoon.com/"+ key;
//            Result.State = UploadState.Success;
        }
        catch (Exception e)
        {
            Result.State        = UploadState.FileAccessError;
            Result.ErrorMessage = e.Message;
        }
        finally
        {
            WriteResult();
        }
    }
예제 #2
0
        public Crawler Fetch()
        {
            if (!IsExternalIpAddress(this.SourceUrl))
            {
                State = "INVALID_URL";
                return(this);
            }
            var request = WebRequest.Create(this.SourceUrl) as HttpWebRequest;

            using (var response = request.GetResponse() as HttpWebResponse)
            {
                if (response != null && response.StatusCode != HttpStatusCode.OK)
                {
                    State = "Url returns " + response.StatusCode + ", " + response.StatusDescription;
                    return(this);
                }
                if (response != null && response.ContentType.IndexOf("image", StringComparison.Ordinal) == -1)
                {
                    State = "Url is not an image";
                    return(this);
                }
                var sourceUri = new Uri(this.SourceUrl);

                ServerUrl = PathFormatter.Format(Path.GetFileName(sourceUri.AbsolutePath), Config.GetString("catcherPathFormat"));

                var savePath = Path.Combine(Config.WebRootPath, ServerUrl);

                //判断是否启用Oss存储
                if (Config.GetBool("UseOss"))
                {//启用OSS存储
                    try
                    {
                        string extension = Path.GetExtension(Path.GetFileName(sourceUri.AbsolutePath));
                        var    key       = DateTime.Now.ToString("yyyyMMddHHmmssfff") + new Random().Next(10000, 99999) + extension;
                        ServerUrl = Config.GetString("OssViewBaseUrl") + key;
                        OssApiHelper ossApiHelper = new OssApiHelper();
                        if (response != null)
                        {
                            var stream = response.GetResponseStream();
                            var result = ossApiHelper.PutObject(key, stream);
                            if (result.Code == 0)
                            {
                                State = "SUCCESS";
                            }
                            else
                            {
                                State = "Upload Oss Error:" + result.Message;
                            }
                        }
                        else
                        {
                            State = "SUCCESS";
                        }
                    }
                    catch (Exception e)
                    {
                        State = "抓取错误:" + e.Message;
                    }
                }
                else
                {//本地存储
                    if (!Directory.Exists(Path.GetDirectoryName(savePath)))
                    {
                        Directory.CreateDirectory(Path.GetDirectoryName(savePath));
                    }
                    try
                    {
                        if (response != null)
                        {
                            var    stream = response.GetResponseStream();
                            var    reader = new BinaryReader(stream);
                            byte[] bytes;
                            using (var ms = new MemoryStream())
                            {
                                byte[] buffer = new byte[4096];
                                int    count;
                                while ((count = reader.Read(buffer, 0, buffer.Length)) != 0)
                                {
                                    ms.Write(buffer, 0, count);
                                }
                                bytes = ms.ToArray();
                            }
                            File.WriteAllBytes(savePath, bytes);
                        }

                        State = "SUCCESS";
                    }
                    catch (Exception e)
                    {
                        State = "抓取错误:" + e.Message;
                    }
                }
                return(this);
            }
        }
    public override void Process()
    {
        byte[] uploadFileBytes = null;
        string uploadFileName  = null;

        if (UploadConfig.Base64)
        {
            uploadFileName  = UploadConfig.Base64Filename;
            uploadFileBytes = Convert.FromBase64String(Request[UploadConfig.UploadFieldName]);
        }
        else
        {
            var file = Request.Files[UploadConfig.UploadFieldName];
            uploadFileName = file.FileName;

            if (!CheckFileType(uploadFileName))
            {
                Result.State = UploadState.TypeNotAllow;
                WriteResult();
                return;
            }
            if (!CheckFileSize(file.ContentLength))
            {
                Result.State = UploadState.SizeLimitExceed;
                WriteResult();
                return;
            }

            uploadFileBytes = new byte[file.ContentLength];
            try
            {
                file.InputStream.Read(uploadFileBytes, 0, file.ContentLength);
            }
            catch (Exception)
            {
                Result.State = UploadState.NetworkError;
                WriteResult();
            }
        }

        Result.OriginFileName = uploadFileName;

        var    savePath  = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat);
        var    localPath = Server.MapPath(savePath);
        string date      = DateTime.Now.ToString("yyyyMMdd");
        string dir       = Path.Combine(ConfigurationManager.AppSettings["UploadPath"], date);

        if (!Directory.Exists(dir))
        {
            Directory.CreateDirectory(dir);
        }
        localPath = Path.Combine(dir, uploadFileName);
        try
        {
            if (!Directory.Exists(Path.GetDirectoryName(localPath)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(localPath));
            }
            File.WriteAllBytes(localPath, uploadFileBytes);
            if (Request["action"] == "uploadimage")
            {
                ImageResizeOptions imageResizeOptions = new ImageResizeOptions();

                imageResizeOptions.cut    = false;
                imageResizeOptions.Width  = 640;
                imageResizeOptions.Height = 0;

                Result.Url   = ConfigurationManager.AppSettings["UploadUrl"] + "/" + date + "/" + ImageManager.ResizeImage(localPath, imageResizeOptions);
                Result.State = UploadState.Success;
            }
            else
            {
                Result.Url   = ConfigurationManager.AppSettings["UploadUrl"] + date + "/" + uploadFileName;
                Result.State = UploadState.Success;
            }
        }
        catch (Exception e)
        {
            Result.State        = UploadState.FileAccessError;
            Result.ErrorMessage = e.Message;
        }
        finally
        {
            WriteResult();
        }
    }
예제 #4
0
    public override void Process()
    {
        byte[] array = null;
        string text  = null;

        if (UploadConfig.Base64)
        {
            text  = UploadConfig.Base64Filename;
            array = Convert.FromBase64String(base.Request[UploadConfig.UploadFieldName]);
        }
        else
        {
            HttpPostedFile httpPostedFile = base.Request.Files[UploadConfig.UploadFieldName];
            text = httpPostedFile.FileName;
            if (!CheckFileType(text))
            {
                Result.State = UploadState.TypeNotAllow;
                WriteResult();
                return;
            }
            if (!CheckFileSize(httpPostedFile.ContentLength))
            {
                Result.State = UploadState.SizeLimitExceed;
                WriteResult();
                return;
            }
            array = new byte[httpPostedFile.ContentLength];
            try
            {
                httpPostedFile.InputStream.Read(array, 0, httpPostedFile.ContentLength);
            }
            catch (Exception)
            {
                Result.State = UploadState.NetworkError;
                WriteResult();
            }
        }
        Result.OriginFileName = text;
        string text2 = PathFormatter.Format(text, UploadConfig.PathFormat);
        string path  = base.Server.MapPath(text2);

        try
        {
            if (!Directory.Exists(Path.GetDirectoryName(path)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(path));
            }
            File.WriteAllBytes(path, array);
            Result.Url   = text2;
            Result.State = UploadState.Success;
        }
        catch (Exception ex2)
        {
            Result.State        = UploadState.FileAccessError;
            Result.ErrorMessage = ex2.Message;
        }
        finally
        {
            WriteResult();
        }
    }
예제 #5
0
        /// <summary>
        /// 保存文件
        /// </summary>
        /// <returns></returns>
        private ResponseBaseModel <dynamic> PutFile()
        {
            var resultMode = new ResponseBaseModel <dynamic>
            {
                ResultCode = ResponceCodeEnum.Success,
                Message    = "响应成功"
            };

            if (Request.Files.Count < 1)
            {
                resultMode.ResultCode = ResponceCodeEnum.Fail;
                resultMode.Message    = "文件不能为空";
                return(resultMode);
            }
            var file           = Request.Files[0];
            var uploadFileName = file?.FileName;

            if (string.IsNullOrEmpty(uploadFileName))
            {
                resultMode.ResultCode = ResponceCodeEnum.Fail;
                resultMode.Message    = "文件不能为空";
                return(resultMode);
            }
            var fileExtension = Path.GetExtension(uploadFileName).ToLower();
            var headImageType = AppConfigurationHelper.GetString("headImageType", null) ?? ".png,.jpg,.gif,.jpeg";

            if (!headImageType.Split(',').Select(x => x.ToLower()).Contains(fileExtension))
            {
                resultMode.ResultCode = ResponceCodeEnum.Fail;
                resultMode.Message    = "文件类型只能为.png,.jpg,.gif,.jpeg";
                return(resultMode);
            }
            //默认2M
            var imageMaxSize = AppConfigurationHelper.GetInt32("imageMaxSize", 0) <= 0 ? 2048000 : AppConfigurationHelper.GetInt32("imageMaxSize", 0);

            if (imageMaxSize < file.ContentLength)
            {
                resultMode.ResultCode = ResponceCodeEnum.Fail;
                resultMode.Message    = "文件大小不能超过2M";
                return(resultMode);
            }
            var uploadFileBytes = new byte[file.ContentLength];

            try
            {
                file.InputStream.Read(uploadFileBytes, 0, file.ContentLength);
            }
            catch (Exception)
            {
                resultMode.ResultCode = ResponceCodeEnum.Fail;
                resultMode.Message    = "文件读取失败";
                return(resultMode);
            }
            //文件保存路径
            //"imagePathFormat": "/Uploadfile/ShareDetailImage/{yyyy}{mm}{dd}/{time}{rand:6}"
            var imagePathFormat = AppConfigurationHelper.GetString("imagePathFormat", null);

            imagePathFormat = string.IsNullOrEmpty(imagePathFormat)
                ? "/Uploadfile/ShareDetailImage/{yyyy}{mm}{dd}/{time}{rand:6}"
                : imagePathFormat;
            var savePath  = PathFormatter.Format(uploadFileName, imagePathFormat);
            var localPath = Server.MapPath(savePath);

            if (string.IsNullOrEmpty(localPath))
            {
                resultMode.ResultCode = ResponceCodeEnum.Fail;
                resultMode.Message    = "文件保存路径创建失败";
                return(resultMode);
            }
            try
            {
                if (!Directory.Exists(Path.GetDirectoryName(localPath)))
                {
                    Directory.CreateDirectory(Path.GetDirectoryName(localPath));
                }
                System.IO.File.WriteAllBytes(localPath, uploadFileBytes);
                resultMode.Message    = savePath;
                resultMode.ResultCode = ResponceCodeEnum.Success;
            }
            catch (Exception)
            {
                resultMode.ResultCode = ResponceCodeEnum.Fail;
                resultMode.Message    = "文件读取失败";
            }

            return(resultMode);
        }
예제 #6
0
    public override void Process()
    {
        string str;

        byte[] numArray;
        if (this.UploadConfig.Base64)
        {
            str      = this.UploadConfig.Base64Filename;
            numArray = Convert.FromBase64String(this.Request[this.UploadConfig.UploadFieldName]);
        }
        else
        {
            HttpPostedFile file = this.Request.Files[this.UploadConfig.UploadFieldName];
            str = file.FileName;
            if (!this.CheckFileType(str))
            {
                this.Result.State = UploadState.TypeNotAllow;
                this.WriteResult();
                return;
            }
            if (!this.CheckFileSize(file.ContentLength))
            {
                this.Result.State = UploadState.SizeLimitExceed;
                this.WriteResult();
                return;
            }
            numArray = new byte[file.ContentLength];
            try
            {
                file.InputStream.Read(numArray, 0, file.ContentLength);
            }
            catch (Exception ex)
            {
                this.Result.State = UploadState.NetworkError;
                this.WriteResult();
            }
        }
        this.Result.OriginFileName = str;
        string path1 = PathFormatter.Format(str, this.UploadConfig.PathFormat);
        string path2 = this.Server.MapPath(path1);

        try
        {
            if (!Directory.Exists(Path.GetDirectoryName(path2)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(path2));
            }
            File.WriteAllBytes(path2, numArray);
            this.Result.Url   = path1;
            this.Result.State = UploadState.Success;
        }
        catch (Exception ex)
        {
            this.Result.State        = UploadState.FileAccessError;
            this.Result.ErrorMessage = ex.Message;
        }
        finally
        {
            this.WriteResult();
        }
    }
예제 #7
0
        public override UEditorResult Process()
        {
            byte[] uploadFileBytes = null;
            string uploadFileName  = null;

            if (UploadConfig.Base64)
            {
                uploadFileName  = UploadConfig.Base64Filename;
                uploadFileBytes = Convert.FromBase64String(Request.Form[UploadConfig.UploadFieldName]);
            }
            else
            {
#if NETSTANDARD2_0
                var file = Request.Form.Files[UploadConfig.UploadFieldName];
#endif
#if NET35
                var file = Request.Files[UploadConfig.UploadFieldName];
#endif
                uploadFileName = file.FileName;

                if (!CheckFileType(uploadFileName))
                {
                    Result.State = UploadState.TypeNotAllow;
                    return(WriteResult());
                }
#if NETSTANDARD2_0
                if (!CheckFileSize(file.Length))
#endif
#if NET35
                if (!CheckFileSize(file.ContentLength))
#endif

                {
                    Result.State = UploadState.SizeLimitExceed;
                    return(WriteResult());
                }
#if NETSTANDARD2_0
                uploadFileBytes = new byte[file.Length];
                try
                {
                    file.OpenReadStream().Read(uploadFileBytes, 0, (int)file.Length);
                }
#endif
#if NET35
                uploadFileBytes = new byte[file.ContentLength];
                try
                {
                    file.InputStream.Read(uploadFileBytes, 0, file.ContentLength);
                }
#endif

                catch (Exception)
                {
                    Result.State = UploadState.NetworkError;
                    WriteResult();
                }
            }

            Result.OriginFileName = uploadFileName;
            UEditorResult result;
            if (Config.GetBool("UseOss"))
            {//使用OSS存储 2019-10-16
                try
                {
                    string extension = Path.GetExtension(Path.GetFileName(uploadFileName));
                    var    key       = DateTime.Now.ToString("yyyyMMddHHmmssfff") + new Random().Next(10000, 99999) + extension;
                    Result.Url = Config.GetString("OssViewBaseUrl") + key;
                    OssApiHelper ossApiHelper = new OssApiHelper();
                    using (Stream streams = new MemoryStream(uploadFileBytes))
                    {
                        streams.Seek(0, SeekOrigin.Begin);
                        var result1 = ossApiHelper.PutObject(key, streams);
                        if (result1.Code == 0)
                        {
                            Result.State = UploadState.Success;
                        }
                        else
                        {
                            Result.State        = UploadState.FileAccessError;
                            Result.ErrorMessage = "Upload Oss Error:" + result1.Message;
                        }
                    }
                }
                catch (Exception e)
                {
                    Result.State        = UploadState.FileAccessError;
                    Result.ErrorMessage = e.Message;
                }
                finally
                {
                    result = WriteResult();
                }
            }
            else
            {
                var savePath  = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat);
                var localPath = Path.Combine(Config.WebRootPath, savePath);

                try
                {
                    if (!Directory.Exists(Path.GetDirectoryName(localPath)))
                    {
                        Directory.CreateDirectory(Path.GetDirectoryName(localPath));
                    }
                    File.WriteAllBytes(localPath, uploadFileBytes);
                    Result.Url   = savePath;
                    Result.State = UploadState.Success;
                }
                catch (Exception e)
                {
                    Result.State        = UploadState.FileAccessError;
                    Result.ErrorMessage = e.Message;
                }
                finally
                {
                    result = WriteResult();
                }
            }
            return(result);
        }
예제 #8
0
    public override void Process()
    {
        byte[] uploadFileBytes = null;
        string uploadFileName  = null;

        if (UploadConfig.Base64)
        {
            uploadFileName  = UploadConfig.Base64Filename;
            uploadFileBytes = Convert.FromBase64String(Request[UploadConfig.UploadFieldName]);
        }
        else
        {
            var file = Request.Files[UploadConfig.UploadFieldName];
            uploadFileName = file.FileName;

            if (!CheckFileType(uploadFileName))
            {
                Result.State = UploadState.TypeNotAllow;
                WriteResult();
                return;
            }
            if (!CheckFileSize(file.ContentLength))
            {
                Result.State = UploadState.SizeLimitExceed;
                WriteResult();
                return;
            }

            uploadFileBytes = new byte[file.ContentLength];
            try
            {
                file.InputStream.Read(uploadFileBytes, 0, file.ContentLength);
            }
            catch (Exception)
            {
                Result.State = UploadState.NetworkError;
                WriteResult();
            }
        }

        uploadFileName        = Guid.NewGuid() + "_" + uploadFileName;
        Result.OriginFileName = uploadFileName;

        var savePath  = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat);
        var localPath = Server.MapPath(savePath);

        try
        {
            //FileHelper.UploadDocument(uploadFileBytes, savePath, DZAFCPortal.Config.AppSettings.SharePointSiteUrl);


            Result.Url   = savePath;
            Result.State = UploadState.Success;
        }
        catch (Exception e)
        {
            Result.State        = UploadState.FileAccessError;
            Result.ErrorMessage = e.Message;
        }
        finally
        {
            WriteResult();
        }
    }
예제 #9
0
    public Crawler Fetch()
    {
        if (!IsExternalIPAddress(this.SourceUrl))
        {
            State = "INVALID_URL";
            return(this);
        }
        var request = HttpWebRequest.Create(this.SourceUrl) as HttpWebRequest;

        using (var response = request.GetResponse() as HttpWebResponse)
        {
            if (response.StatusCode != HttpStatusCode.OK)
            {
                State = "Url returns " + response.StatusCode + ", " + response.StatusDescription;
                return(this);
            }
            if (response.ContentType.IndexOf("image") == -1)
            {
                State = "网址不是一个图像 ";
                return(this);
            }

            string strTypeCode = "";
            Dal.Models.TemplateInfo tempInfo = (Dal.Models.TemplateInfo)Context.Session["TemplateInfo"];
            if (tempInfo == null)
            {
                strTypeCode = Dal.Models.FileType.NoticeImage.ToString();
            }
            else
            {
                if (tempInfo.PartCode == "Appendix")
                {
                    strTypeCode = Dal.Models.FileType.DeclarationAppendix.ToString();
                }
                else if (tempInfo.PartCode == "Atlas")
                {
                    strTypeCode = Dal.Models.FileType.DeclarationAtlas.ToString();
                }
                else
                {
                    strTypeCode = Dal.Models.FileType.DeclarationImage.ToString();
                }
            }
            ServerUrl = PathFormatter.Format(strTypeCode, Path.GetFileName(this.SourceUrl), Config.GetString("catcherPathFormat"));
            var savePath = Server.MapPath(ServerUrl);
            if (!Directory.Exists(Path.GetDirectoryName(savePath)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(savePath));
            }
            try
            {
                var    stream = response.GetResponseStream();
                var    reader = new BinaryReader(stream);
                byte[] bytes;
                using (var ms = new MemoryStream())
                {
                    byte[] buffer = new byte[4096];
                    int    count;
                    while ((count = reader.Read(buffer, 0, buffer.Length)) != 0)
                    {
                        ms.Write(buffer, 0, count);
                    }
                    bytes = ms.ToArray();
                }
                File.WriteAllBytes(savePath, bytes);
                State = "SUCCESS";
            }
            catch (Exception e)
            {
                State = "抓取错误:" + e.Message;
            }
            return(this);
        }
    }
예제 #10
0
    public override void Process()
    {
        byte[] uploadFileBytes = null;
        string uploadFileName  = null;

        if (UploadConfig.Base64)
        {
            uploadFileName  = UploadConfig.Base64Filename;
            uploadFileBytes = Convert.FromBase64String(Request[UploadConfig.UploadFieldName]);
        }
        else
        {
            var file = Request.Files[UploadConfig.UploadFieldName];
            uploadFileName = file.FileName;

            if (!CheckFileType(uploadFileName))
            {
                Result.State = UploadState.TypeNotAllow;
                WriteResult();
                return;
            }
            if (!CheckFileSize(file.ContentLength))
            {
                Result.State = UploadState.SizeLimitExceed;
                WriteResult();
                return;
            }

            uploadFileBytes = new byte[file.ContentLength];
            try
            {
                file.InputStream.Read(uploadFileBytes, 0, file.ContentLength);
            }
            catch (Exception)
            {
                Result.State = UploadState.NetworkError;
                WriteResult();
            }
        }

        Result.OriginFileName = uploadFileName;

        string path = string.Empty;

        switch (UploadConfig.UploadParams)
        {
        case "UploadImgForNoticeShowBg":
            path = System.Configuration.ConfigurationManager.AppSettings["NoticeImgShowBgPath"];
            break;

        case "UploadImgForSchoolStyle":
            path = System.Configuration.ConfigurationManager.AppSettings["SchoolStylePath"];
            break;

        case "UploadImgForAdvertContent":
            path = System.Configuration.ConfigurationManager.AppSettings["AdvertImgContentPath"];
            break;

        case "UploadImgForLinkContent":
            path = System.Configuration.ConfigurationManager.AppSettings["LinkImgContentPath"];
            break;

        case "UploadImgForMessageContent":
            path = System.Configuration.ConfigurationManager.AppSettings["MessageImgContentPath"];
            break;

        case "UploadWordForContent":
            path = System.Configuration.ConfigurationManager.AppSettings["WordContentPath"];
            break;
        }
        var savePath  = PathFormatter.Format(uploadFileName, path + UploadConfig.PathFormat);
        var localPath = Server.MapPath("~" + savePath);

        try
        {
            if (!Directory.Exists(Path.GetDirectoryName(localPath)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(localPath));
            }
            File.WriteAllBytes(localPath, uploadFileBytes);
            Result.Url   = savePath;
            Result.State = UploadState.Success;
        }
        catch (Exception e)
        {
            Result.State        = UploadState.FileAccessError;
            Result.ErrorMessage = e.Message;
        }
        finally
        {
            WriteResult();
        }
    }
    public override void Process()
    {
        byte[] buffer   = null;
        string filename = null;
        int    fileSize = 0;

        if (this.UploadConfig.Base64)
        {
            filename = this.UploadConfig.Base64Filename;
            buffer   = Convert.FromBase64String(base.Request[this.UploadConfig.UploadFieldName]);
        }
        else
        {
            HttpPostedFile file = base.Request.Files[this.UploadConfig.UploadFieldName];
            filename = file.FileName;
            if (!this.CheckFileType(filename))
            {
                this.Result.State = UploadState.TypeNotAllow;
                this.WriteResult();
                return;
            }
            if (!this.CheckFileSize(file.ContentLength))
            {
                this.Result.State = UploadState.SizeLimitExceed;
                this.WriteResult();
                return;
            }
            fileSize = file.ContentLength;
            buffer   = new byte[file.ContentLength];
            try
            {
                file.InputStream.Read(buffer, 0, file.ContentLength);
            }
            catch (Exception)
            {
                this.Result.State = UploadState.NetworkError;
                this.WriteResult();
            }
        }
        this.Result.OriginFileName = filename;
        string path = PathFormatter.Format(filename, this.UploadConfig.PathFormat);
        string str3 = base.Server.MapPath(path);

        try
        {
            if (!Directory.Exists(Path.GetDirectoryName(str3)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(str3));
            }
            GalleryHelper.AddPhote(Globals.RequestFormNum("cate_id"), this.Result.OriginFileName, path, fileSize);
            File.WriteAllBytes(str3, buffer);
            this.Result.Url   = path;
            this.Result.State = UploadState.Success;
        }
        catch (Exception exception)
        {
            this.Result.State        = UploadState.FileAccessError;
            this.Result.ErrorMessage = exception.Message;
        }
        finally
        {
            this.WriteResult();
        }
    }
        public Crawler Fetch()
        {
            if (!IsExternalIPAddress(this.SourceUrl))
            {
                State = "INVALID_URL";
                return(this);
            }
            var request = HttpWebRequest.Create(this.SourceUrl) as HttpWebRequest;

            using (var response = request.GetResponseAsync().Result as HttpWebResponse)
            {
                if (response.StatusCode != HttpStatusCode.OK)
                {
                    State = "Url returns " + response.StatusCode + ", " + response.StatusDescription;
                    return(this);
                }
                if (response.ContentType.IndexOf("image") == -1)
                {
                    State = "Url is not an image";
                    return(this);
                }
                String fileExt = Path.GetExtension(this.SourceUrl).ToLower();
                int    len     = fileExt.LastIndexOf('?');
                if (len != -1)
                {
                    fileExt = fileExt.Substring(0, len);
                    // Guid.NewGuid().ToString().Replace("-","");
                    ServerUrl = PathFormatter.Format($"{Guid.NewGuid().ToString().Replace("-", "")}{fileExt}", Config.GetString("catcherPathFormat"));
                }
                else
                {
                    ServerUrl = PathFormatter.Format(Path.GetFileName(this.SourceUrl), Config.GetString("catcherPathFormat"));
                }
                var savePath = Path.Combine(Config.WebRootPath, ServerUrl);
                if (!Directory.Exists(Path.GetDirectoryName(savePath)))
                {
                    Directory.CreateDirectory(Path.GetDirectoryName(savePath));
                }
                try
                {
                    var    stream = response.GetResponseStream();
                    var    reader = new BinaryReader(stream);
                    byte[] bytes;
                    using (var ms = new MemoryStream())
                    {
                        byte[] buffer = new byte[4096];
                        int    count;
                        while ((count = reader.Read(buffer, 0, buffer.Length)) != 0)
                        {
                            ms.Write(buffer, 0, count);
                        }
                        bytes = ms.ToArray();
                    }
                    File.WriteAllBytes(savePath, bytes);
                    State = "SUCCESS";
                }
                catch (Exception e)
                {
                    State = "抓取错误:" + e.Message;
                }
                return(this);
            }
        }
예제 #13
0
        public CrawlerViewModel Crawler(
            Repository repository,
            string siteName,
            MediaFolder folder,
            string[] source,
            string catcherPathFormat)
        {
            var result = new CrawlerViewModel
            {
                state = "SUCCESS"
            };

            if (source == null || source.Length == 0)
            {
                result.state = "参数错误:没有指定抓取源";
                return(result);
            }
            result.list = source.Select(item =>
            {
                var crawler = new CrawlerItemViewModel();
                if (!IsExternalIPAddress(item))
                {
                    crawler.state = "INVALID_URL";
                    return(crawler);
                }
                crawler.source = item;
                var request    = HttpWebRequest.Create(item) as HttpWebRequest;
                using (var response = request.GetResponse() as HttpWebResponse)
                {
                    if (response.StatusCode != HttpStatusCode.OK)
                    {
                        crawler.state = "Url returns " + response.StatusCode + ", " + response.StatusDescription;
                        return(crawler);
                    }
                    if (response.ContentType.IndexOf("image") == -1)
                    {
                        crawler.state = "Url is not an image";
                        return(crawler);
                    }
                    try
                    {
                        var name = Path.GetFileName(item);
                        if (!Path.HasExtension(item))
                        {
                            name += ".jpg";
                        }
                        var fileName = PathFormatter.Format(name, catcherPathFormat);
                        var stream   = response.GetResponseStream();
                        var reader   = new BinaryReader(stream);
                        using (var ms = new MemoryStream())
                        {
                            byte[] buffer = new byte[4096];
                            int count;
                            while ((count = reader.Read(buffer, 0, buffer.Length)) != 0)
                            {
                                ms.Write(buffer, 0, count);
                            }
                            ms.Flush();
                            var res     = Upload(repository, siteName, folder, fileName, ms);
                            crawler.url = res.url;
                        }

                        crawler.state = "SUCCESS";
                    }
                    catch (Exception e)
                    {
                        crawler.state = "抓取错误:" + e.Message;
                    }
                    return(crawler);
                }
                return(crawler);
            });

            return(result);
        }
예제 #14
0
        public Crawler Fetch()
        {
            if (!IsExternalIPAddress(this.SourceUrl))
            {
                State = "INVALID_URL";
                return(this);
            }
            var request = HttpWebRequest.Create(this.SourceUrl) as HttpWebRequest;

            using (var response = request.GetResponseAsync().Result as HttpWebResponse)
            {
                if (response.StatusCode != HttpStatusCode.OK)
                {
                    State = "Url returns " + response.StatusCode + ", " + response.StatusDescription;
                    return(this);
                }
                if (response.ContentType.IndexOf("image") == -1)
                {
                    State = "Url is not an image";
                    return(this);
                }
                ServerUrl = PathFormatter.Format(Path.GetFileName(this.SourceUrl), Config.GetString("catcherPathFormat"));
                //var savePath = Path.Combine(Config.WebRootPath, ServerUrl);
                var savePath = Path.Combine(Config.GetString("catcherSaveAbsolutePath"), ServerUrl);
                //

                try
                {
                    var stream = response.GetResponseStream();
                    //
                    if (Config.GetValue <bool>("catcherFtpUpload"))
                    {
                        var fileExt = ServerUrl.Substring(savePath.LastIndexOf('.')).TrimStart('.');
                        var key     = Config.GetString("catcherPathFormat") + "." + fileExt;
                        //FtpUpload.UploadFile(stream, savePath, Consts.ImgFtpServer.ip,
                        //    Consts.ImgFtpServer.account, Consts.ImgFtpServer.pwd);
                        AliyunOssUpload.UploadFile(Consts.AliyunOssServer.AccessEndpoint,
                                                   Consts.AliyunOssServer.AccessKeyId, Consts.AliyunOssServer.AccessKeySecret,
                                                   Consts.AliyunOssServer.BucketName, key, fileExt, stream);
                    }
                    else
                    {
                        if (!Directory.Exists(Path.GetDirectoryName(savePath)))
                        {
                            Directory.CreateDirectory(Path.GetDirectoryName(savePath));
                        }

                        var    reader = new BinaryReader(stream);
                        byte[] bytes;
                        using (var ms = new MemoryStream())
                        {
                            byte[] buffer = new byte[4096];
                            int    count;
                            while ((count = reader.Read(buffer, 0, buffer.Length)) != 0)
                            {
                                ms.Write(buffer, 0, count);
                            }

                            bytes = ms.ToArray();
                        }

                        File.WriteAllBytes(savePath, bytes);
                    }

                    State = "SUCCESS";
                }
                catch (Exception e)
                {
                    State = "抓取错误:" + e.Message;
                }
                return(this);
            }
        }
예제 #15
0
    public override void Process()
    {
        byte[] uploadFileBytes = null;
        //文件原名
        string uploadFileName = null;

        if (UploadConfig.Base64)
        {
            uploadFileName  = UploadConfig.Base64Filename;
            uploadFileBytes = Convert.FromBase64String(Request[UploadConfig.UploadFieldName]);
        }
        else
        {
            //提交**的表单名称UploadConfig.UploadFieldName
            var file = Request.Files[UploadConfig.UploadFieldName];//json中 Config.GetString("imageFieldName")
            uploadFileName = file.FileName;

            //检查文件类型限制
            if (!CheckFileType(uploadFileName))
            {
                Result.State = UploadState.TypeNotAllow;
                WriteResult();
                return;
            }
            //检查文件大小限制
            if (!CheckFileSize(file.ContentLength))
            {
                Result.State = UploadState.SizeLimitExceed;
                WriteResult();
                return;
            }

            uploadFileBytes = new byte[file.ContentLength];
            try
            {
                //将文件流写入uploadFileBytes中
                file.InputStream.Read(uploadFileBytes, 0, file.ContentLength);
            }
            catch (Exception)
            {
                Result.State = UploadState.NetworkError;
                WriteResult();
            }
        }

        Result.OriginFileName = uploadFileName;

        //文件保存路径"imagePathFormat": "/Content/upfile/{yyyy}{mm}{dd}/{time}{rand:6}",
        string savePath = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat);
        //转换为绝对路径
        string localPath = Server.MapPath(savePath);

        try
        {
            if (!Directory.Exists(Path.GetDirectoryName(localPath)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(localPath));
            }
            //1.0 将文件保存到本地路径中
            File.WriteAllBytes(localPath, uploadFileBytes);

            //2.0 再上传至七牛,之后就一直用七牛的地址
            string bucket        = System.Configuration.ConfigurationManager.AppSettings["QiNiuBucket"];
            string qiniuUrlIndex = System.Configuration.ConfigurationManager.AppSettings["QiNiuURL"];
            string key           = UploadConfig.QiniuPathFormat + DateTime.Now.ToString("yyyyMMdd") + "/" + localPath.Split('\\').Last();

            bool qiniuFlag = ZYN.BLOG.WebHelper.QiniuHelper.UploadFile(bucket, key, localPath);
            if (qiniuFlag)
            {
                //3.0 为了节省服务器存储空间,保存至七牛后,将服务器文件删除。
                string dir = System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "Content\\upfile";
                Directory.Delete(dir, true);

                //4.0 先将新上传的文章文件(图片和文件等)入库->(便于页面中链接的展示)->保存完或更新完文章后补全文件的FromArticleId
                #region 自定义: 开始把上传的图片信息临时存入Session;用于保存文章时获取文章内文件信息

                StaticFile artFile = new StaticFile()
                {
                    FileRawName = uploadFileName,
                    FileNowName = localPath.Split('\\').Last(),
                    //FileLocalPath = null,
                    FileOnLineURL = qiniuUrlIndex + "/" + key,   //保存到库中的均为真实路径
                    //FromArticleId = null, //添加完文章之后再赋值
                    FileType   = 1,
                    UploadTime = DateTime.Now
                };

                ZYN.BLOG.IBLL.IStaticFileService fileService = ZYN.BLOG.WebHelper.OperateHelper.Current.serviceSession.StaticFileService;

                int val = fileService.Add(artFile); //先将其入库,拿到Id再补全FromArticleId
                if (val == 1)
                {
                    HttpContext      context = HttpContext.Current;
                    HttpSessionState session = context.Session;

                    List <StaticFile> filelist = session["ArticleFiles"] as List <StaticFile>;
                    if (filelist == null)
                    {
                        filelist = new List <StaticFile>();
                        session["ArticleFiles"] = filelist;
                    }

                    filelist.Add(artFile);
                }

                //如果动作是上传图片,就在页面中直接显示,如果动作是上传文件,就给Controller下载路由(不行,文章保存后,才保存的文件。那能不能先保存文件到数据库,后期再把这些文件的FromArticleId补上,我看行)
                if (UploadConfig.ActionName == "uploadimage")
                {
                    Result.Url = qiniuUrlIndex + "/" + key;
                }
                else if (UploadConfig.ActionName == "uploadfile")
                {
                    if (val == 1)
                    {
                        //为了防止图标显示不正确,配合ueditor.all.js中的文件图标函数getFileIcon 加上.pdf
                        Result.Url  = "http://www.zynblog.com/Admin/FileHandler/DownLoadFile?fileId=" + artFile.Id;
                        Result.Url += "&fileName=" + uploadFileName;
                    }
                    else
                    {
                        Result.Url = qiniuUrlIndex + "/" + key;
                    }
                }

                Result.State = UploadState.Success;
                #endregion
            }
            else
            {
                Result.Url          = "";
                Result.State        = UploadState.NetworkError;
                Result.ErrorMessage = "上传至本地成功,但是上传至七牛失败(可能是没有网络)";

                string dir = System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "Content\\upfile";
                Directory.Delete(dir, true);
            }
        }
        catch (Exception e)
        {
            Result.State        = UploadState.FileAccessError;
            Result.ErrorMessage = e.Message;
        }
        finally
        {
            WriteResult();
        }
    }
예제 #16
0
    public override void Process()
    {
        byte[] uploadFileBytes = null;
        string uploadFileName  = null;

        try
        {
            if (UploadConfig.Base64)
            {
                uploadFileName  = UploadConfig.Base64Filename;
                uploadFileBytes = Convert.FromBase64String(Request[UploadConfig.UploadFieldName]);
            }
            else
            {
                var file = Request.Files[UploadConfig.UploadFieldName];
                uploadFileName = file.FileName;

                if (!CheckFileType(uploadFileName))
                {
                    Result.State = UploadState.TypeNotAllow;
                    WriteResult();
                    return;
                }
                if (!CheckFileSize(file.ContentLength))
                {
                    Result.State = UploadState.SizeLimitExceed;
                    WriteResult();
                    return;
                }

                uploadFileBytes = new byte[file.ContentLength];
                try
                {
                    file.InputStream.Read(uploadFileBytes, 0, file.ContentLength);
                }
                catch (Exception)
                {
                    Result.State = UploadState.NetworkError;
                    WriteResult();
                }
            }

            Result.OriginFileName = uploadFileName;

            var savePath  = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat);
            var localPath = Server.MapPath(savePath);

            #region  再需要储存文件到服务器

            //if (!Directory.Exists(Path.GetDirectoryName(localPath)))
            //{
            //    Directory.CreateDirectory(Path.GetDirectoryName(localPath));
            //}
            //File.WriteAllBytes(localPath, uploadFileBytes);
            //Result.Url = savePath;
            //Result.State = UploadState.Success;

            #endregion

            #region 旧代码

            //IOClient target = new IOClient();
            //var extra = new PutExtra();
            //extra.MimeType = "text/plain";
            //extra.Crc32 = 123;
            //extra.CheckCrc = CheckCrcType.CHECK;
            //extra.Params = new Dictionary<string, string>();
            //var put = new PutPolicy("ctxsdhy-blog");
            ////上传结束回调事件
            //target.PutFinished += new EventHandler<PutRet>((o, e) =>
            //{
            //file.Del();
            //if (e.OK)
            //{
            //    RSHelper.RSDel(Bucket, file.FileName);
            //}
            //});

            //PutRet ret = target.PutFile(put.Token(), Guid.NewGuid().ToString(), localPath, extra);
            //直接通过二进制流上传
            //PutRet ret = target.Put(put.Token(), Guid.NewGuid().ToString(), new MemoryStream(uploadFileBytes), extra);

            #endregion

            GetResult(uploadFileBytes);
        }
        catch (Exception e)
        {
            //Result.State = UploadState.FileAccessError;
            //Result.ErrorMessage = e.Message;
            GetResult(uploadFileBytes);
        }
        finally
        {
            WriteResult();
        }
    }
예제 #17
0
    public override void Process()
    {
        byte[] uploadFileBytes = null;
        string uploadFileName  = null;

        if (UploadConfig.Base64)
        {
            uploadFileName  = UploadConfig.Base64Filename;
            uploadFileBytes = Convert.FromBase64String(Request[UploadConfig.UploadFieldName]);
        }
        else
        {
            var file = Request.Files[UploadConfig.UploadFieldName];
            uploadFileName = file.FileName;

            if (!CheckFileType(uploadFileName))
            {
                Result.State = UploadState.TypeNotAllow;
                WriteResult();
                return;
            }
            if (!CheckFileSize(file.ContentLength))
            {
                Result.State = UploadState.SizeLimitExceed;
                WriteResult();
                return;
            }

            uploadFileBytes = new byte[file.ContentLength];
            try
            {
                file.InputStream.Read(uploadFileBytes, 0, file.ContentLength);
            }
            catch (Exception)
            {
                Result.State = UploadState.NetworkError;
                WriteResult();
            }
        }

        Result.OriginFileName = uploadFileName;

        var savePath  = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat);
        var localPath = Server.MapPath(savePath);

        try
        {
            #region  再需要储存文件到服务器

            //if (!Directory.Exists(Path.GetDirectoryName(localPath)))
            //{
            //    Directory.CreateDirectory(Path.GetDirectoryName(localPath));
            //}
            //File.WriteAllBytes(localPath, uploadFileBytes);
            //Result.Url = savePath;
            //Result.State = UploadState.Success;

            #endregion

            #region   文件到七牛

            var ret = QiniuHelper.GetResult(uploadFileBytes);

            if (ret.OK)
            {
                Result.Url   = QiniuHelper.GetUrl(ret.key);
                Result.State = UploadState.Success;
            }

            #endregion
        }
        catch (Exception e)
        {
            Result.State        = UploadState.FileAccessError;
            Result.ErrorMessage = e.Message;
        }
        finally
        {
            WriteResult();
        }
    }
예제 #18
0
    public override void Process()
    {
        byte[]         uploadFileBytes = null;
        string         uploadFileName  = null;
        HttpPostedFile file            = null;

        if (UploadConfig.Base64)
        {
            uploadFileName  = UploadConfig.Base64Filename;
            uploadFileBytes = Convert.FromBase64String(Request[UploadConfig.UploadFieldName]);
        }
        else
        {
            file           = Request.Files[UploadConfig.UploadFieldName];
            uploadFileName = file.FileName;

            if (!CheckFileType(uploadFileName))
            {
                Result.State = UploadState.TypeNotAllow;
                WriteResult();
                return;
            }
            if (!CheckFileSize(file.ContentLength))
            {
                Result.State = UploadState.SizeLimitExceed;
                WriteResult();
                return;
            }

            uploadFileBytes = new byte[file.ContentLength];
            try
            {
                file.InputStream.Read(uploadFileBytes, 0, file.ContentLength);
            }
            catch (Exception)
            {
                Result.State = UploadState.NetworkError;
                WriteResult();
            }
        }

        Result.OriginFileName = uploadFileName;

        var savePath  = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat);
        var localPath = Server.MapPath(savePath);

        try
        {
            if (!Directory.Exists(Path.GetDirectoryName(localPath)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(localPath));
            }
            File.WriteAllBytes(localPath, uploadFileBytes);
            Result.Url   = savePath;
            Result.State = UploadState.Success;

            if (UploadConfig.imageCompressEnable)
            {
                //裁剪边长
                System.Drawing.Image originalImage = System.Drawing.Image.FromFile(localPath);
                string picfilename = Path.GetFileName(localPath);
                if (originalImage.Width > UploadConfig.imageCompressBorder)
                {
                    originalImage.Dispose();
                    string temppath = Server.MapPath("/data/images/temp/" + picfilename);
                    if (!Directory.Exists(Path.GetDirectoryName(temppath)))
                    {
                        Directory.CreateDirectory(Path.GetDirectoryName(temppath));
                    }
                    File.WriteAllBytes(temppath, uploadFileBytes);
                    Base.Utils.MakeThumbnail(temppath, localPath, UploadConfig.imageCompressBorder, 10000, "W");
                }

                //生成缩略图

                string thumbPath = "/data/images_thumb/" + DateTime.Now.ToString("yyyyMM");

                thumbPath = HttpContext.Current.Server.MapPath(thumbPath);
                if (!Directory.Exists(thumbPath))
                {
                    Directory.CreateDirectory(thumbPath);
                }
                string thumbfile = thumbPath + "/" + Path.GetFileName(localPath);
                Base.Utils.MakeThumbnail(localPath, thumbfile, 100, 80, "WH");
            }
        }
        catch (Exception e)
        {
            Result.State        = UploadState.FileAccessError;
            Result.ErrorMessage = e.Message;
        }
        finally
        {
            WriteResult();
        }
    }
예제 #19
0
        public override UEditorResult Process()
        {
            byte[] uploadFileBytes = null;
            string uploadFileName  = null;

            if (UploadConfig.Base64)
            {
                uploadFileName  = UploadConfig.Base64Filename;
                uploadFileBytes = Convert.FromBase64String(Request.Form[UploadConfig.UploadFieldName]);
            }
            else
            {
#if net462
                var file = Request.Form.Files[UploadConfig.UploadFieldName];
#endif
#if NET35
                var file = Request.Files[UploadConfig.UploadFieldName];
#endif
                uploadFileName = file.FileName;

                if (!CheckFileType(uploadFileName))
                {
                    Result.State = UploadState.TypeNotAllow;
                    return(WriteResult());
                }
#if net462
                if (!CheckFileSize(file.Length))
#endif
#if NET35
                if (!CheckFileSize(file.ContentLength))
#endif

                {
                    Result.State = UploadState.SizeLimitExceed;
                    return(WriteResult());
                }
#if net462
                uploadFileBytes = new byte[file.Length];
                try
                {
                    file.OpenReadStream().Read(uploadFileBytes, 0, (int)file.Length);
                }
#endif
#if NET35
                uploadFileBytes = new byte[file.ContentLength];
                try
                {
                    file.InputStream.Read(uploadFileBytes, 0, file.ContentLength);
                }
#endif

                catch (Exception)
                {
                    Result.State = UploadState.NetworkError;
                    WriteResult();
                }
            }

            Result.OriginFileName = uploadFileName;

            var           savePath  = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat);
            var           localPath = Path.Combine(Config.WebRootPath, savePath);
            UEditorResult result;
            try
            {
                if (!Directory.Exists(Path.GetDirectoryName(localPath)))
                {
                    Directory.CreateDirectory(Path.GetDirectoryName(localPath));
                }
                File.WriteAllBytes(localPath, uploadFileBytes);
                Result.Url   = savePath;
                Result.State = UploadState.Success;
            }
            catch (Exception e)
            {
                Result.State        = UploadState.FileAccessError;
                Result.ErrorMessage = e.Message;
            }
            finally
            {
                result = WriteResult();
            }

            return(result);
        }
예제 #20
0
        public ActionResult UploadFile(string fileType)
        {
            string       callback = Request["callback"];
            UploadResult result   = new UploadResult()
            {
                State = UploadState.Unknown
            };
            UEditorModel uploadConfig = new UEditorModel();

            if (fileType == "uploadimage")
            {
                uploadConfig = new UEditorModel()
                {
                    AllowExtensions = UEditorConfig.GetStringList("imageAllowFiles"),
                    PathFormat      = UEditorConfig.GetString("imagePathFormat"),
                    SizeLimit       = UEditorConfig.GetInt("imageMaxSize"),
                    UploadFieldName = UEditorConfig.GetString("imageFieldName")
                };
            }
            if (fileType == "uploadscrawl")
            {
                uploadConfig = new UEditorModel()
                {
                    AllowExtensions = new string[] { ".png" },
                    PathFormat      = UEditorConfig.GetString("scrawlPathFormat"),
                    SizeLimit       = UEditorConfig.GetInt("scrawlMaxSize"),
                    UploadFieldName = UEditorConfig.GetString("scrawlFieldName"),
                    Base64          = true,
                    Base64Filename  = "scrawl.png"
                };
            }
            if (fileType == "uploadvideo")
            {
                uploadConfig = new UEditorModel()
                {
                    AllowExtensions = UEditorConfig.GetStringList("videoAllowFiles"),
                    PathFormat      = UEditorConfig.GetString("videoPathFormat"),
                    SizeLimit       = UEditorConfig.GetInt("videoMaxSize"),
                    UploadFieldName = UEditorConfig.GetString("videoFieldName")
                };
            }
            if (fileType == "uploadfile")
            {
                uploadConfig = new UEditorModel()
                {
                    AllowExtensions = UEditorConfig.GetStringList("fileAllowFiles"),
                    PathFormat      = UEditorConfig.GetString("filePathFormat"),
                    SizeLimit       = UEditorConfig.GetInt("fileMaxSize"),
                    UploadFieldName = UEditorConfig.GetString("fileFieldName")
                };
            }
            byte[] uploadFileBytes;
            string uploadFileName;

            if (uploadConfig.Base64)
            {
                uploadFileName  = uploadConfig.Base64Filename;
                uploadFileBytes = Convert.FromBase64String(Request[uploadConfig.UploadFieldName]);
            }
            else
            {
                var file = Request.Files[uploadConfig.UploadFieldName];
                uploadFileName = file.FileName;
                var fileExtension = Path.GetExtension(uploadFileName).ToLower();

                if (!uploadConfig.AllowExtensions.Select(x => x.ToLower()).Contains(fileExtension))
                {
                    result.State = UploadState.TypeNotAllow;
                    return(Content(WriteUploadResult(callback, result), string.IsNullOrWhiteSpace(callback) ? "text/plain" : "application/javascript"));
                }
                if (!(file.ContentLength < uploadConfig.SizeLimit))
                {
                    result.State = UploadState.SizeLimitExceed;
                    return(Content(WriteUploadResult(callback, result), string.IsNullOrWhiteSpace(callback) ? "text/plain" : "application/javascript"));
                }
                uploadFileBytes = new byte[file.ContentLength];
                try
                {
                    file.InputStream.Read(uploadFileBytes, 0, file.ContentLength);
                }
                catch (Exception)
                {
                    result.State = UploadState.NetworkError;
                    return(Content(WriteUploadResult(callback, result), string.IsNullOrWhiteSpace(callback) ? "text/plain" : "application/javascript"));
                }
            }
            result.OriginFileName = uploadFileName;

            var savePath  = PathFormatter.Format(uploadFileName, uploadConfig.PathFormat);
            var localPath = Server.MapPath(savePath);

            try
            {
                if (!Directory.Exists(Path.GetDirectoryName(localPath)))
                {
                    Directory.CreateDirectory(Path.GetDirectoryName(localPath));
                }
                System.IO.File.WriteAllBytes(localPath, uploadFileBytes);
                result.Url   = savePath;
                result.State = UploadState.Success;
            }
            catch (Exception e)
            {
                result.State        = UploadState.FileAccessError;
                result.ErrorMessage = e.Message;
            }
            return(Content(WriteUploadResult(callback, result), string.IsNullOrWhiteSpace(callback) ? "text/plain" : "application/javascript"));
        }
예제 #21
0
    public override void Process()
    {
        byte[] uploadFileBytes = null;
        string uploadFileName  = null;

        if (UploadConfig.Base64)
        {
            uploadFileName  = UploadConfig.Base64Filename;
            uploadFileBytes = Convert.FromBase64String(Request[UploadConfig.UploadFieldName]);
        }
        else
        {
            var file = Request.Files[UploadConfig.UploadFieldName];
            uploadFileName = file.FileName;

            if (!CheckFileType(uploadFileName))
            {
                Result.State = UploadState.TypeNotAllow;
                WriteResult();
                return;
            }
            if (!CheckFileSize(file.ContentLength))
            {
                Result.State = UploadState.SizeLimitExceed;
                WriteResult();
                return;
            }

            uploadFileBytes = new byte[file.ContentLength];
            try
            {
                file.InputStream.Read(uploadFileBytes, 0, file.ContentLength);
            }
            catch (Exception)
            {
                Result.State = UploadState.NetworkError;
                WriteResult();
            }
        }

        Result.OriginFileName = uploadFileName;
        var    savePath  = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat);
        string localPath = Server.MapPath(savePath);

        try
        {
            #region 新增将附件上传到指定路径 2019-08-27

            // 获取是否指定资源服务器路径
            string resourceUrl = System.Configuration.ConfigurationManager.AppSettings.Get("EditorResourceUrl");

            // 如果指定,就上传至指定路径
            if (!string.IsNullOrWhiteSpace(resourceUrl))
            {
                string rootPath = System.Configuration.ConfigurationManager.AppSettings.Get("EditorResource");
                if (string.IsNullOrWhiteSpace(rootPath))
                {
                    rootPath = "C:\\Editor\\upload\\";
                }
                localPath = rootPath + savePath.Replace("/", "\\");
                savePath  = resourceUrl + "/" + savePath;
            }

            #endregion

            if (!Directory.Exists(Path.GetDirectoryName(localPath)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(localPath));
            }

            File.WriteAllBytes(localPath, uploadFileBytes);
            Result.Url   = savePath;
            Result.State = UploadState.Success;
        }
        catch (Exception e)
        {
            Result.State        = UploadState.FileAccessError;
            Result.ErrorMessage = e.Message;
            WriteUploadExLog(e.Message);
        }
        finally
        {
            WriteResult();
        }
    }
예제 #22
0
    public override void Process()
    {
        byte[] array    = null;
        string text     = null;
        int    fileSize = 0;

        if (this.UploadConfig.Base64)
        {
            text  = this.UploadConfig.Base64Filename;
            array = Convert.FromBase64String(base.Request[this.UploadConfig.UploadFieldName]);
        }
        else
        {
            HttpPostedFile httpPostedFile = base.Request.Files[this.UploadConfig.UploadFieldName];
            text = httpPostedFile.FileName;
            if (!this.CheckFileType(text))
            {
                this.Result.State = UploadState.TypeNotAllow;
                this.WriteResult();
                return;
            }
            if (!this.CheckFileSize(httpPostedFile.ContentLength))
            {
                this.Result.State = UploadState.SizeLimitExceed;
                this.WriteResult();
                return;
            }
            fileSize = httpPostedFile.ContentLength;
            array    = new byte[httpPostedFile.ContentLength];
            try
            {
                httpPostedFile.InputStream.Read(array, 0, httpPostedFile.ContentLength);
            }
            catch (Exception)
            {
                this.Result.State = UploadState.NetworkError;
                this.WriteResult();
            }
        }
        this.Result.OriginFileName = text;
        string text2 = PathFormatter.Format(text, this.UploadConfig.PathFormat);
        string path  = base.Server.MapPath(text2);

        try
        {
            if (!Directory.Exists(Path.GetDirectoryName(path)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(path));
            }
            GalleryHelper.AddPhote(Convert.ToInt32(base.Request.Form["cate_id"]), this.Result.OriginFileName, text2, fileSize, 0);
            File.WriteAllBytes(path, array);
            this.Result.Url   = text2;
            this.Result.State = UploadState.Success;
        }
        catch (Exception ex2)
        {
            this.Result.State        = UploadState.FileAccessError;
            this.Result.ErrorMessage = ex2.Message;
        }
        finally
        {
            this.WriteResult();
        }
    }
예제 #23
0
        public override void Process()
        {
            byte[] uploadFileBytes = null;
            string uploadFileName  = null;

            if (UploadConfig.Base64)
            {
                uploadFileName  = UploadConfig.Base64Filename;
                uploadFileBytes = Convert.FromBase64String(Request.Form[UploadConfig.UploadFieldName]);
            }
            else
            {
                var file = Request.Form.Files[UploadConfig.UploadFieldName];
                uploadFileName = file.FileName;

                if (!CheckFileType(uploadFileName))
                {
                    Result.State = UploadState.TypeNotAllow;
                    WriteResult();
                    return;
                }
                if (!CheckFileSize((int)file.Length))
                {
                    Result.State = UploadState.SizeLimitExceed;
                    WriteResult();
                    return;
                }

                uploadFileBytes = new byte[file.Length];
                try
                {
                    file.OpenReadStream().Read(uploadFileBytes, 0, (int)file.Length);
                }
                catch (Exception)
                {
                    Result.State = UploadState.NetworkError;
                    WriteResult();
                }
            }

            Result.OriginFileName = uploadFileName;

            var savePath  = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat);
            var localPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, savePath);

            try
            {
                if (UploadConfig.IsLocal)
                {
                    if (!Directory.Exists(Path.GetDirectoryName(localPath)))
                    {
                        Directory.CreateDirectory(Path.GetDirectoryName(localPath));
                    }
                    File.WriteAllBytes(localPath, uploadFileBytes);
                    Result.Url   = savePath;
                    Result.State = UploadState.Success;
                }
                else
                {
                    FileHandler  fTPHelper = new FileHandler();
                    MemoryStream stream    = new MemoryStream(uploadFileBytes);
                    FileHandler.FileServiceResult result = fTPHelper.UploadFile(stream, UploadConfig.FileServerUrl, savePath);
                    Result.Url   = result.Data[0];
                    Result.State = UploadState.Success;
                }
            }
            catch (Exception e)
            {
                Result.State        = UploadState.FileAccessError;
                Result.ErrorMessage = e.Message;
            }
            finally
            {
                WriteResult();
            }
        }
예제 #24
0
        public override void Process()
        {
            byte[] uploadFileBytes = null;
            string uploadFileName  = null;
            Stream fileStream      = null;

            if (UploadConfig.Base64)
            {
                uploadFileName  = UploadConfig.Base64Filename;
                uploadFileBytes = Convert.FromBase64String(Request.Form[UploadConfig.UploadFieldName]);
            }
            else
            {
                var file = Request.Form.Files[UploadConfig.UploadFieldName];
                uploadFileName = file.FileName;

                if (!CheckFileType(uploadFileName))
                {
                    Result.State = UploadState.TypeNotAllow;
                    WriteResult();
                    return;
                }
                if (!CheckFileSize((int)file.Length))
                {
                    Result.State = UploadState.SizeLimitExceed;
                    WriteResult();
                    return;
                }

                uploadFileBytes = new byte[file.Length];
                try
                {
                    fileStream = file.OpenReadStream();
                    file.OpenReadStream().Read(uploadFileBytes, 0, (int)file.Length);
                }
                catch (Exception)
                {
                    Result.State = UploadState.NetworkError;
                    WriteResult();
                }
            }

            Result.OriginFileName = uploadFileName;

            var savePath = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat);
            //var localPath = Path.Combine(Config.WebRootPath, savePath);
            var localPath = Path.Combine(UploadConfig.SaveAbsolutePath, savePath);

            try
            {
                if (UploadConfig.FtpUpload)
                {
                    var fileExt = Path.GetExtension(uploadFileName).TrimStart('.');
                    var key     = savePath;//UploadConfig.PathFormat + "." + fileExt;
                    //FtpUpload.UploadFile(new MemoryStream(uploadFileBytes), localPath, UploadConfig.FtpIp,
                    //    UploadConfig.FtpAccount, UploadConfig.FtpPwd);
                    AliyunOssUpload.UploadFile(Consts.AliyunOssServer.AccessEndpoint,
                                               Consts.AliyunOssServer.AccessKeyId, Consts.AliyunOssServer.AccessKeySecret,
                                               Consts.AliyunOssServer.BucketName, key, fileExt, new MemoryStream(uploadFileBytes));
                }
                else
                {
                    if (!Directory.Exists(Path.GetDirectoryName(localPath)))
                    {
                        Directory.CreateDirectory(Path.GetDirectoryName(localPath));
                    }

                    File.WriteAllBytes(localPath, uploadFileBytes);
                }
                Result.Url   = savePath;
                Result.State = UploadState.Success;
            }
            catch (Exception e)
            {
                Result.State        = UploadState.FileAccessError;
                Result.ErrorMessage = e.Message;
            }
            finally
            {
                WriteResult();
            }
        }
예제 #25
0
    public override void Process()
    {
        byte[] uploadFileBytes = null;
        string uploadFileName  = null;

        if (UploadConfig.Base64)
        {
            uploadFileName  = UploadConfig.Base64Filename;
            uploadFileBytes = Convert.FromBase64String(Request[UploadConfig.UploadFieldName]);
        }
        else
        {
            var file = Request.Files[0];//Request.Files[UploadConfig.UploadFieldName];
            uploadFileName = file.FileName;

            if (!CheckFileType(uploadFileName))
            {
                Result.State = UploadState.TypeNotAllow;
                WriteResult();
                return;
            }
            if (!CheckFileSize(file.ContentLength))
            {
                Result.State = UploadState.SizeLimitExceed;
                WriteResult();
                return;
            }


            uploadFileBytes = new byte[file.ContentLength];
            try
            {
                file.InputStream.Read(uploadFileBytes, 0, file.ContentLength);
            }
            catch (Exception)
            {
                Result.State = UploadState.NetworkError;
                WriteResult();
            }
        }

        Result.OriginFileName = uploadFileName;

        string fileExt          = Path.GetExtension(uploadFileName).ToLower();
        string saveDoc          = DateTime.Now.ToString(@"yy\\MM\\dd\\");
        string rndFileName      = FancyFix.Tools.Usual.Common.GetDataShortRandom();
        string dirPath          = UploadConfig.PathFormat;// uploadFileName;//PathFormatter.Format(uploadFileName, UploadConfig.PathFormat);
        string newFileName      = saveDoc + rndFileName + fileExt;
        string newSmallFileName = saveDoc + rndFileName + "s" + fileExt;
        var    savePath         = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat);

        try
        {
            if (!Directory.Exists(dirPath + saveDoc))
            {
                Directory.CreateDirectory(dirPath + saveDoc);
            }
            File.WriteAllBytes(dirPath + newFileName, uploadFileBytes);
            ImageTools.SetImgSize(dirPath + newFileName, 800, 800);
            if (UploadConfig.PathFormat.IndexOf("product") > 0)
            {
                Setting setting = UploadProvice.Instance().Settings["product"];
                if (setting.AddWaterMark)
                {
                    ImageTools.AddWaterMark(dirPath + newFileName, dirPath + newFileName, Server.MapPath(setting.WaterMarkImgOrTxt), WaterMarkType.ImageMark, WaterMarkPosition.Right_Bottom, setting.Transparency);
                }
            }
            //Tools.Tool.ImageTools.CreateSmallImage(dirPath + newFileName, dirPath + newSmallFileName, 200, 200);
            Result.Url   = FancyFix.Tools.Usual.Utils.GetLastFolderName(dirPath) + "/" + newFileName;
            Result.State = UploadState.Success;
        }
        catch (Exception e)
        {
            Result.State        = UploadState.FileAccessError;
            Result.ErrorMessage = e.Message;
            FancyFix.Tools.Tool.LogHelper.WriteLog(typeof(UploadHandler), e);
        }
        finally
        {
            WriteResult();
        }
    }
예제 #26
0
    public override void Process()
    {
        byte[] uploadFileBytes = null;
        string uploadFileName  = null;

        if (UploadConfig.Base64)
        {
            uploadFileName  = UploadConfig.Base64Filename;
            uploadFileBytes = Convert.FromBase64String(Request[UploadConfig.UploadFieldName]);
        }
        else
        {
            var file = Request.Files[UploadConfig.UploadFieldName];
            uploadFileName = file.FileName;

            if (!CheckFileType(uploadFileName))
            {
                Result.State = UploadState.TypeNotAllow;
                WriteResult();
                return;
            }
            if (!CheckFileSize(file.ContentLength))
            {
                Result.State = UploadState.SizeLimitExceed;
                WriteResult();
                return;
            }

            uploadFileBytes = new byte[file.ContentLength];
            try
            {
                file.InputStream.Read(uploadFileBytes, 0, file.ContentLength);
            }
            catch (Exception)
            {
                Result.State = UploadState.NetworkError;
                WriteResult();
            }
        }

        Result.OriginFileName = uploadFileName;

        var savePath  = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat);
        var localPath = Server.MapPath(savePath);

        try
        {
            if (!Directory.Exists(Path.GetDirectoryName(localPath)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(localPath));
            }
            File.WriteAllBytes(localPath, uploadFileBytes);

            Result.Url   = Regex.Replace(savePath, "/UploadRoot/", "/", RegexOptions.IgnoreCase);
            Result.State = UploadState.Success;
        }
        catch (Exception e)
        {
            Result.State        = UploadState.FileAccessError;
            Result.ErrorMessage = e.Message;
        }
        finally
        {
            WriteResult();
        }
    }
    public override void Process()
    {
        byte[] uploadFileBytes = null;
        string uploadFileName  = null;

        if (UploadConfig.Base64)
        {
            uploadFileName  = UploadConfig.Base64Filename;
            uploadFileBytes = Convert.FromBase64String(Request[UploadConfig.UploadFieldName]);
        }
        else
        {
            var file = Request.Files[UploadConfig.UploadFieldName];
            uploadFileName = file.FileName;

            if (!CheckFileType(uploadFileName))
            {
                Result.State = UploadState.TypeNotAllow;
                WriteResult();
                return;
            }
            if (!CheckFileSize(file.ContentLength))
            {
                Result.State = UploadState.SizeLimitExceed;
                WriteResult();
                return;
            }

            uploadFileBytes = new byte[file.ContentLength];
            try
            {
                file.InputStream.Read(uploadFileBytes, 0, file.ContentLength);
            }
            catch (Exception)
            {
                Result.State = UploadState.NetworkError;
                WriteResult();
            }
        }

        Result.OriginFileName = uploadFileName;

        var savePath  = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat);
        var localPath = Server.MapPath(savePath);

        try
        {
            if (!Directory.Exists(Path.GetDirectoryName(localPath)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(localPath));
            }
            File.WriteAllBytes(localPath, uploadFileBytes);

            //自动存素材处理
            //IAttachmentsItemService _attachmentsItemService = EngineContext.Current.Resolve<IAttachmentsItemService>();
            //AttachmentsItemPostProperty p = new AttachmentsItemPostProperty()
            //{
            //    SaveFullName = savePath,
            //    ServerPath = Server.MapPath("~/"),
            //    FileName = System.IO.Path.GetFileName(savePath),
            //    TargetFilePath = savePath.Replace(System.IO.Path.GetFileName(savePath), ""),
            //    UploadFileType = Request["action"].Replace("upload",""),
            //    AppId = int.Parse(Request["appid"]),
            //    Description = System.IO.Path.GetFileNameWithoutExtension(uploadFileName),
            //   // VideoCoverSrc = Request["videoCoverSrc"] == null ? string.Empty : Request["videoCoverSrc"].Trim('/'),
            //    //UserName =Request.User.Identity.Name,
            //    //ViewId = pid,
            //};
            //_attachmentsItemService.ThumbImageAndInsertIntoDB(p);


            string host = CommonService.GetSysConfig("Content Server", "");
            Result.Url   = host + savePath;
            Result.State = UploadState.Success;
        }
        catch (Exception e)
        {
            Result.State        = UploadState.FileAccessError;
            Result.ErrorMessage = e.Message;
        }
        finally
        {
            WriteResult();
        }
    }