iframe 효과 모방 Aajx 파일 업로드

얼마 전에 ajax 가 파일 을 올 리 는 것 을 해결 할 때 한바탕 고생 했 습 니 다.$. post 로 텍스트 정 보 를 직접 올 리 는 것 은 문제 가 없 을 것 입 니 다.하지만 $. post 가 직접 사진 을 올 리 는 것 은 불가능 하 다.
나중에 인터넷 의 일부 해결 방안 을 보 았 는데 기 존의 aax 가 파일 을 업로드 하 는 봉인 방법 도 플래시 를 이용 한 것 이 있 었 다.플래시 는 좋 은 방법 이지 만 누구나 플래시 를 할 수 있 는 것 이 아니 라 기 존 방법 을 다운로드 해서 수정 하 는 것 도 쉽 지 않 고 파일 이 상대 적 으로 크다.결국 iframe 을 모 의 해서 이 루어 질 수 밖 에 없 었 다.발견 은 상당히 간단 하 다.
html: 1 < iframe   name = "ajaxUpload"   style = "display:none" ></ iframe > 2 < form   name = "from1"   id = "from1"   method = "post"   action = "url"    enctype = "multipart/form-data" target = "ajaxUpload" > 3 < table > 4     < tr > 5        < td > :</ td > 6        < td >< input   type = "file"   id = "document"   name = "document" /></ td > 7     </ tr > 8 </ table > 9 </ form >
여기 가 포인트 야.파일 enctype 을 업로드 하려 면 이 속성 이 적지 않 습 니 다. target 의 값 은 iframe 의 name 값 으로 바 꿉 니 다.
다음은 js 코드 를 쓰 겠 습 니 다. 저 는 jQuery 를 사용 하기 때문에 사용 할 때 jquery 라 이브 러 리 를 불 러 오 는 것 이 필요 합 니 다.1 $( function (){ 2          if ($.browser.msie){ 3               window.form1.submit();} else { 4               $( "#form1" ).submit();} 5         });
IE 는 규범 에 맞지 않 는 브 라 우 저, 특히 IE6 이기 때문에 브 라 우 저 버 전의 판단 을 내 렸 다.IE6 는 $("\ # idName") 를 직접 지원 하지 않 습 니 다. submit ();이런 식 으로.
서버 는 다음 과 같 습 니 다. 값 을 되 돌려 야 합 니 다. 직접 submit 는 값 을 되 돌려 줄 수 없습니다.01 public   void Upload() 02 { 03      HttpPostedBase ff=Request.Files[ "document" ]; // , 04      string fileName=System.DateTime.Now+ff.FileName.ToString();    // , 。 , 。 05      try 06      { 07          SaveAs(documentPath+fileName+extendtionName); 08          Response.Write( "<script type='text/javascript' type='language'>parent.window.callBackMethod(' ');</scrpt>" ); 09      } 10      catch 11      { 12          Response.Write( "<script type='text/javascript' type='language'>parent.window.callBackMethod(' ');</scrpt>" );  //parent.window.methodName(); JS 。 iframe , iframe 。 target iframe 。 iframe , 。 alert() , 。 。 13       } 14 }
아 날로 그 iframe 은 페이지 부분 업데이트 이지 만 페이지 의 이 iframe 은 내용 이 없고 표시 되 지 않 기 때문에 전체 페이지 에 영향 을 주지 않 습 니 다.

좋은 웹페이지 즐겨찾기