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; } } } } } }
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); } }