아래 내용에 본삭금 뒤늦게 걸고 자답으로 수정했더니 <div>태그 안닫힌게 하나 있는지 에러가 나네요. ㄷㄷㄷ</div> <div>해서 혹시나 필요하신분 참고하시라고 새 글로 올립니다.</div> <div><br></div> <div><br></div> <div><div><%@ Page Language="C#" ContentType="text/html" ResponseEncoding="utf-8" Debug="true" %></div> <div><%@ Import Namespace = "System.IO" %></div> <div><%@ Import Namespace = "System.Drawing" %></div> <div><%@ Import Namespace = "System.Drawing.Imaging" %></div> <div><%@ Import Namespace = "System.Text" %></div> <div><script runat="server"></div> <div><br></div> <div>//전역변수 선언</div> <div>string srvRoot, srvPath, srcPath;</div> <div><br></div> <div>protected void Page_Load(object sender, EventArgs e){</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>//전역변수 초기화</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>srvRoot = Request["srvRoot"];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>srvPath = Request["srvPath"];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>srcPath = Request["srcPath"];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if( srvRoot == "" ){ srvRoot = Server.MapPath("\\"); }</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// 파일컨트롤 선언 및 초기화</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>HttpPostedFile requestFile = Request.Files[0];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// 파일명, 전체경로 설정</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>string fileName = requestFile.FileName;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>string fullPath = srvRoot + srvPath + fileName;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// 서버에 파일폴더가 존재하지 않을시 생성</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>DirectoryInfo di = new DirectoryInfo(srvRoot + srvPath);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if( !di.Exists ){ di.Create(); }</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// 파일 중복체크</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>string fnm, ext = fileName.Substring(fileName.LastIndexOf(".") + 1);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>FileInfo fi = new FileInfo(fullPath);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if( fi.Exists ){</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int fidx = 0;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fnm = fileName.Substring(0, fileName.LastIndexOf("."));</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>do{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fidx++;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fileName = fnm + "[" + fidx.ToString() + "]." + ext;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fullPath = srvRoot + srvPath + fileName;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fi = new FileInfo(fullPath);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}while( fi.Exists );</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>try{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>requestFile.SaveAs(fullPath);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span><font color="#0070c0">// 파일 이미지의 확장자가 JPG 또는 JPEG 일 경우 EXIF 데이터 추출하여 이미지 270도 회전</font></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>string<span class="Apple-tab-span" style="white-space:pre;"> </span>fileext = fullPath.Substring(fullPath.LastIndexOf(".") + 1, 3);</font></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>fileext = fileext.ToUpper();</font></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font color="#0070c0"> </font></span></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>if( fileext == "JPG" ){</font></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>string file = fullPath;</font></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>FileInfo info = new FileInfo(file);</font></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>long filesize = info.Length;</font></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>FileStream stream = new FileStream(file,FileMode.Open,FileAccess.Read);</font></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>System.Drawing.Image img = System.Drawing.Image.FromStream(stream,false,false);</font></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font color="#0070c0"> </font></span></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>PropertyItem item = img.GetPropertyItem(0x0112);</font></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>int orientation = item.Value[0];</font></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>stream.Dispose();</font></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font color="#0070c0"> </font></span></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>if( orientation == 6 ){</font></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>System.Drawing.Image rotateimg = System.Drawing.Image.FromFile(fullPath);</font></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>rotateimg.RotateFlip(RotateFlipType.Rotate270FlipXY);</font></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>rotateimg.Save(fullPath);</font></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>rotateimg.Dispose();</font></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</font></div> <div><font color="#0070c0"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</font></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>Response.Write("{\"result\":\"" + fileName + "\"}");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}catch{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>Response.Write("{\"result\":false, \"error\":\"\"}");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div>}</div> <div></script></div></div> <div><br></div> <div><br></div> <div><br></div> <div><br></div> <div>파란색 부분이 새롭게 추가된 부분입니다.</div> <div>정답 찾는데 도움을 주신 구글신님과 스택오버플로의</div> <div>이름모를 해외 개발자님들(?)께 감사드립니다. ㅋㅋ</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.