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 += " - " + 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 { } }
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 += " - " + 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 { } }