protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ClanPension Pension = new ClanPension(Session["ID"].ToString());

            int    length = Request.ContentLength;
            byte[] bytes  = new byte[length];
            Request.InputStream.Read(bytes, 0, length);

            //시간
            DateTime dtNow = DateTime.Now;
            //이름
            string sAbsoluteFileName = HttpUtility.UrlDecode(Request.Headers["fileName"]);
            string sFileName         = sAbsoluteFileName;
            //확장자
            string   sExtension;
            string   sFileType   = Request.Headers["fileType"];
            string[] saExtension = { "image/bmp", "image/gif", "image/jpeg", "image/png" };
            //용량
            int iFileSize = Convert.ToInt32(Request.Headers["fileSize"]);
            //주소
            string sFileUrl = "http://file.itclan.co.kr/pension/" + Pension.GetStoreNum() + "/0/" + dtNow.ToString("yyyy-MM-dd").Replace('-', '/') + "/";
            string sFileDirectory;
            string sPath = "D:/ITClan/File/pension/" + Pension.GetStoreNum() + "/0/" + dtNow.ToString("yyyy-MM-dd").Replace('-', '/') + "/";

            //폴더
            CreateDirectory(sPath);

            if (iFileSize < (10 * 1024 * 1024))
            {
                if (CheckExtension(sFileType, saExtension))
                {
                    //확장자
                    sExtension = Path.GetExtension(sFileName);

                    for (int n = 0; ; n++)
                    {
                        //이름 변경
                        sFileName = dtNow.ToString("HHmmssffff") + MakeRandomNum(9999) + sExtension;
                        //파일주소
                        sFileDirectory = sPath + sFileName;

                        //파일 없으면 저장
                        if (!ExistsFile(sFileDirectory))
                        {
                            // 파일 저장
                            FileStream fileStream = new FileStream(sFileDirectory, FileMode.Create, FileAccess.ReadWrite);
                            fileStream.Write(bytes, 0, length);
                            fileStream.Close();
                            // 업로드 디렉토리 + 파일명
                            sFileUrl = sFileUrl + sFileName;

                            Response.Write(string.Format("&bNewLine=true&sFileName={0}&sFileURL={1}", sFileName.Replace(sExtension, ""), sFileUrl));
                            Response.End();
                            break;
                        }
                    }
                }
            }
        }
    }
Exemple #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ClanPension Pension = new ClanPension(Session["ID"].ToString());

            HttpFileCollection uploadedFiles = Request.Files;

            //시간
            DateTime dtNow = DateTime.Now;
            //이름
            string sFileName;
            //확장자
            string   sExtension;
            string[] saExtension = { "image/bmp", "image/gif", "image/jpeg", "image/png" };
            //주소
            string sFileUrl = "http://file.itclan.co.kr/pension/" + Pension.GetStoreNum() + "/0/" + dtNow.ToString("yyyy-MM-dd").Replace('-', '/') + "/";
            string sFileDirectory;
            string sPath = "D:/ITClan/File/pension/" + Pension.GetStoreNum() + "/0/" + dtNow.ToString("yyyy-MM-dd").Replace('-', '/') + "/";
            //롤백
            string callback_func = Request.Form["callback_func"];

            if (uploadedFiles.Count != 0)
            {
                CreateDirectory(sPath);

                for (int i = 0; i < uploadedFiles.Count; i++)
                {
                    sFileName  = Path.GetFileName(uploadedFiles[i].FileName);
                    sExtension = uploadedFiles[i].ContentType;

                    if (!String.IsNullOrEmpty(sFileName))
                    {
                        if (uploadedFiles[i].ContentLength > 0)
                        {
                            if (uploadedFiles[i].ContentLength < (10 * 1024 * 1024))
                            {
                                if (CheckExtension(sExtension, saExtension))
                                {
                                    //확장자
                                    sExtension = Path.GetExtension(uploadedFiles[i].FileName);

                                    for (int n = 0; ; n++)
                                    {
                                        //이름 변경
                                        sFileName = dtNow.ToString("HHmmssffff") + MakeRandomNum(9999) + sExtension;
                                        //파일주소
                                        sFileDirectory = sPath + sFileName;

                                        // 파일 없으면 저장
                                        if (!ExistsFile(sFileDirectory))
                                        {
                                            // 파일 저장
                                            uploadedFiles[i].SaveAs(sFileDirectory);
                                            // 업로드 디렉토리 + 파일명
                                            sFileUrl = sFileUrl + sFileName;

                                            // 클라이언트에 저장한 파일 정보를 보내 줌
                                            string returnUrl = string.Format("callback.html?callback_func={0}&bNewLine=true&sFileName={1}&sFileURL={2}",
                                                                             callback_func, sFileName.Replace(sExtension, ""), sFileUrl);

                                            Response.Redirect(returnUrl);
                                            break;
                                        }
                                    }
                                }
                                else
                                {
                                    Response.Write("<script>alert('확장자를 확인해주세요'); window.close;</script>");
                                    Response.End();
                                }
                            }
                            else
                            {
                                Response.Write("<script>alert('이미지 용량이 10MB를 초과하여 등록할 수 없습니다.'); window.close;</script>");
                                Response.End();
                            }
                        }
                    }
                }
            }

            Response.Write("<script>alert('다시 시도해주세요'); window.close;</script>");
            Response.End();
            //ScriptManager.RegisterStartupScript(this, this.GetType(), "", "alert('첨부파일 등록중 에러발생。');", true);
        }
    }