Exemplo n.º 1
0
    private void SetAdd()
    {
        lblStatus.Text = "";

        // dialogArguments가 있는지 체크한다.
        mArgs = hArgArray.Value.ToString().Split(';');

        if (mArgs.Length < 3)
        {
            PageUtility.AlertMessage("파일첨부에 대한 정보를 알 수 없습니다!", false, true);
            return;
        }

        // AttachNo 추출여부 확인
        if (hSaveAttachNo.Value == "")
        {
            Biz_Base_FileUpload bizCom = new Biz_Base_FileUpload();
            hSaveAttachNo.Value = bizCom.GetAttachNo(mArgs[GetArgsInfo(EN_ARGS_INFO.SAVEINFO)] + "_F");
        }

        //string dir = Server.MapPath(CS_MAPPATH);
        string dir    = CS_MAPPATH + mArgs[GetArgsInfo(EN_ARGS_INFO.SAVEINFO)] + "/" + DateTime.Now.ToString("yyyyMMdd") + "/";
        string status = "";

        string lsAddFileInfo = "";      // 테이블에 저장될 파일정보
        string lsAddName     = "";      //중복되면 시간을 붙여 파일명으로 만든다.
        string lsFileName    = System.IO.Path.GetFileName(FindFile.PostedFile.FileName);

        string sText  = "";
        string sValue = "";

        string sTmpText = "";

        if (Page.IsPostBack == true)
        {
            if (lsFileName == "")
            {
                return;
            }

            for (int i = 0; i < lbFileList.Items.Count; i++)
            {
                sTmpText = lbFileList.Items[i].Text;
                if (sTmpText.Substring(0, sTmpText.LastIndexOf(" (")) == lsFileName)
                {
                    PageUtility.AlertMessage("이미 추가되어 있습니다!");

                    if (lbFileList.SelectedIndex >= 0)
                    {
                        lbFileList.Items[lbFileList.SelectedIndex].Selected = false;
                    }

                    lbFileList.Items[i].Selected = true;

                    return;
                }
            }


            try
            {
                if (!Directory.Exists(dir))
                {
                    Directory.CreateDirectory(dir);
                }

                while (true)
                {
                    if (File.Exists(dir + lsAddName + lsFileName))
                    {
                        lsAddName = DateTime.Now.ToString("HHmmss") + "_";
                    }
                    else
                    {
                        break;
                    }
                }

                FindFile.PostedFile.SaveAs(dir + lsAddName + lsFileName);
                miFilesProcessed++;
                status += "&nbsp;&nbsp;- " + lsFileName + "<br>";

                sValue = dir + lsAddName + lsFileName;
                sText  = System.IO.Path.GetFileName(FindFile.PostedFile.FileName) + " (" + TypeUtility.GetByte2Str(FindFile.PostedFile.InputStream.Length) + ")";

                lbFileList.Items.Add(new ListItem(sText, sValue));
                lblStatus.Text = "These " + miFilesProcessed + " file(s) were uploaded:<br>" + status;

                hSaveFiles.Value += sText + ";" + sValue;

                /*
                 * AttachNo, v_FileName, v_FileSize, p_FileSize, p_FullPath
                 * */
                lsAddFileInfo = hSaveAttachNo.Value + ";"
                                + System.IO.Path.GetFileName(FindFile.PostedFile.FileName) + ";"
                                + TypeUtility.GetByte2Str(FindFile.PostedFile.InputStream.Length) + ";"
                                + FindFile.PostedFile.InputStream.Length.ToString() + ";"
                                + (dir + lsAddName + lsFileName);

                // 파일저장 테이블에 인서트
                int iProcess = 0;
                Biz_Base_FileUpload bizUpload = new Biz_Base_FileUpload();

                switch (mArgs[GetArgsInfo(EN_ARGS_INFO.TBLINFO)])
                {
                case "FILE":
                    iProcess = bizUpload.AddFileInfo(TypeUtility.GetSplit(lsAddFileInfo));
                    break;

                case "PROCFILE":
                    // 추후에 ICM_PROCFILE에 업데이트 하는 모듈 개발해야 한다. (2006.02.25 강신규)
                    iProcess = bizUpload.AddFileInfo(TypeUtility.GetSplit(lsAddFileInfo));
                    break;
                }
            }
            catch (Exception err)
            {
                // 파일처리가 되었다면 삭제한다.
                DeleteFile(true);

                lblStatus.Text = "Error saving file " + dir + "<br>" + err.ToString();
            }
        }
        else
        {
        }
    }
Exemplo n.º 2
0
    private void SetAdd2()
    {
        lblStatus.Text = "";

        string dir    = "";
        string status = "";

        string lsAddFileInfo = "";      // 테이블에 저장될 파일정보
        string lsAddName     = "";      //중복되면 시간을 붙여 파일명으로 만든다.
        string lsFileName    = System.IO.Path.GetFileName(FindFile.PostedFile.FileName);

        string sText  = "";
        string sValue = "";

        string sTmpText = "";

        // dialogArguments가 있는지 체크한다.
        mArgs = hArgArray.Value.ToString().Split(';');

        if (Page.IsPostBack == true)
        {
            if (lsFileName == "")
            {
                return;
            }

            if (mArgs[GetArgsInfo(EN_ARGS_INFO.TBLINFO)] == "EXCEL")
            {
                // 엑셀파일일 경우는 파일 하나만 추가하도록 조정한다.
                dir = CS_EXCELPATH + DateTime.Now.ToString("yyyyMMdd") + "/";

                if (lsFileName.Substring(lsFileName.LastIndexOf(".") + 1).ToUpper() != "XLS" ||
                    lsFileName.Substring(lsFileName.LastIndexOf(".") + 1).ToUpper() != "XLSX")
                {
                    PageUtility.AlertMessage("엑셀파일만 업로드할 수 있습니다!");
                    return;
                }

                if (lbFileList.Items.Count > 0)
                {
                    PageUtility.AlertMessage("엑셀파일이 이미 추가되어 있습니다.");
                    return;
                }
            }
            else
            {
                // 일반파일일 경우
                dir = CS_MAPPATH + mArgs[GetArgsInfo(EN_ARGS_INFO.SAVEINFO)] + "/" + DateTime.Now.ToString("yyyyMMdd") + "/";

                if (mArgs.Length < 3)
                {
                    PageUtility.AlertMessage("파일첨부에 대한 정보를 알 수 없습니다!", false, true);
                    return;
                }

                // AttachNo 추출여부 확인
                if (hSaveAttachNo.Value == "")
                {
                    //Biz_Base_FileUpload biz = new Biz_Base_FileUpload();
                    //hSaveAttachNo.Value = biz.GetAttachNo(mArgs[GetArgsInfo(EN_ARGS_INFO.SAVEINFO)] + "_F");

                    hSaveAttachNo.Value = mArgs[GetArgsInfo(EN_ARGS_INFO.SAVEINFO)] + "_F" + DateTime.Now.ToString("yyyyMMddHHmmss");
                }

                for (int i = 0; i < lbFileList.Items.Count; i++)
                {
                    sTmpText = lbFileList.Items[i].Text;
                    if (sTmpText.Substring(0, sTmpText.LastIndexOf(" (")) == lsFileName)
                    {
                        PageUtility.AlertMessage("이미 추가되어 있습니다!");

                        if (lbFileList.SelectedIndex >= 0)
                        {
                            lbFileList.Items[lbFileList.SelectedIndex].Selected = false;
                        }

                        lbFileList.Items[i].Selected = true;

                        return;
                    }
                }
            }

            int iPostedFileSize = (FindFile.PostedFile.ContentLength / 1000);
            try
            {
                if (!Directory.Exists(dir))
                {
                    Directory.CreateDirectory(dir);
                }

                while (true)
                {
                    if (File.Exists(dir + lsAddName + lsFileName))
                    {
                        lsAddName = DateTime.Now.ToString("HHmmss") + "_";
                    }
                    else
                    {
                        break;
                    }
                }

                if ((this.ITotalSize + iPostedFileSize) > this.IFileLimitSize)
                {
                    PageUtility.AlertMessage("파일용량을 초과하였습니다.");
                    return;
                }

                FindFile.PostedFile.SaveAs(dir + lsAddName + lsFileName);
                miFilesProcessed++;
                status += "&nbsp;&nbsp;- " + lsFileName + "<br>";

                sValue = dir + lsAddName + lsFileName;
                sText  = System.IO.Path.GetFileName(FindFile.PostedFile.FileName) + " (" + TypeUtility.GetByte2Str(FindFile.PostedFile.InputStream.Length) + ")";

                lbFileList.Items.Add(new ListItem(sText, sValue));
                lblStatus.Text = "These " + miFilesProcessed + " file(s) were uploaded:<br>" + status;

                hSaveFiles.Value += sText + ";" + sValue;

                /*
                 * AttachNo, v_FileName, v_FileSize, p_FileSize, p_FullPath
                 * */
                lsAddFileInfo = hSaveAttachNo.Value + ";"
                                + System.IO.Path.GetFileName(FindFile.PostedFile.FileName) + ";"
                                + TypeUtility.GetByte2Str(FindFile.PostedFile.InputStream.Length) + ";"
                                + FindFile.PostedFile.InputStream.Length.ToString() + ";"
                                + (dir + lsAddName + lsFileName);

                // 파일저장 테이블에 인서트
                int iProcess = 0;
                Biz_Base_FileUpload bizUpload = new Biz_Base_FileUpload();

                switch (mArgs[GetArgsInfo(EN_ARGS_INFO.TBLINFO)])
                {
                case "EXCEL":
                    // 저장이 엑셀업로드용 이라면 실제 디렉토리정보를 리턴한다.
                    hSaveAttachNo.Value = (dir + lsAddName + lsFileName);
                    break;

                case "FILE":
                    iProcess = bizUpload.AddFileInfo(TypeUtility.GetSplit(lsAddFileInfo));
                    break;

                case "PROCFILE":
                    // 추후에 ICM_PROCFILE에 업데이트 하는 모듈 개발해야 한다. (2006.02.25 강신규)
                    iProcess = bizUpload.AddFileInfo(TypeUtility.GetSplit(lsAddFileInfo));
                    break;
                }

                // 파일 저장정보 변경시 changeflag 셋팅
                if (this.hChangeFlag.Value != "T")
                {
                    this.hChangeFlag.Value = "T";
                }

                this.ITotalSize       += iPostedFileSize;
                lblEnableAttKbyte.Text = this.GetRemainFileSize();
            }
            catch (Exception err)
            {
                // 파일처리가 되었다면 삭제한다.
                DeleteFile(true);

                lblStatus.Text = "Error saving file " + dir + "<br>" + err.ToString();
            }
        }
        else
        {
        }
    }