2009-04-07 9 views
4

아약스와 PHP를 통해 이진 파일을 업로드하고 다운로드 할 수 있는지 알고 싶습니다. 나는 표준 HTML 양식처럼 전체 페이지를 새로 고치는 것을 피하고 싶다. 지금까지 양식을 사용하여 라디오 및 텍스트 상자와 같은 정보를 얻었으며 javascript를 사용하여 기본 동작을 재정의했습니다. 파일을 업로드 할 때 비슷한 점이 있습니까?PHP로 아약스를 통해 파일 업로드

답변

0

John Gietzen이 말했듯이, AJAX ()를 통해 직접이 작업을 수행 할 수 없습니다. 그래도 할 수있는 일은 보이지 않는 iframe에 양식을 놓은 다음 AJAX를 사용하여 서버에 URL을 요청하십시오. 페이지를 새로 고치지 않으면 기본적인 사용자 경험을 유지할 수 있습니다.

1

AJAX를 통해 파일을 업로드 할 수는 없지만 파일 컨트롤을 팝업에 넣은 다음 닫을 때 팝업을 생성 한 페이지를 업데이트 할 수 있습니다.

팝업을 생성 한 페이지를 업데이트하는 방법이 너무 명확하지 않지만 ANGEL Learning Management Suite에서 완료된 것으로 보았습니다.

+0

내가 기억하는 한, '오프너'는 팝업을 연 창을 나타냅니다. – stefs

1

양식에 IFrame (표시 없음)을 지정하고 양식의 대상을 iframe으로 설정하십시오.

내 양식은 다음과 같습니다

<iframe id="upload_target" name="upload_target" src="" style="width:0px;height:0px;border:0px solid #fff;"></iframe> 
<form enctype="multipart/form-data" name="frmXMLUpload" target="upload_target" action="scripts/uploadXML.php" method="POST" onSubmit="return checkExtension(fXMLFile.value, 'xml')"> 
<!--only allow up to 30k of data to be uploaded--> 
<input type="hidden" name="MAX_FILE_SIZE" value="30000" /> 
<input name="fXMLFile" id="fXMLFile" type="file" accept="text/xml" size="50" /> 
<p><input type="submit" value="Upload" /></p> 
</form> 

을 그리고 yuor IFRAME에서 응답을 처리합니다. 기본적으로 이것은 AJAX가 아니지만 JavaScript는 로컬 컴퓨터의 파일에 액세스 할 수 있습니까? 그것은 그것이 멋지다.

13

: 예를 들어이 같은

.

옵션은 다음과 같습니다

  • 숨겨진 iframe이 트릭은 구글에 의해 대중화. 이 방법을 직접 구현하면 일부 불건전 한 결과가 발생할 수 있으므로, jQuery 같은 플러그인이있는 jQuery의 인기있는 Form Plugin과 같은 라이브러리가 있으므로 자동화 할 때이 라이브러리를 사용할 때 더러워지지 않아도됩니다.
  • 플래시를 사용하여 프로세스를 쉽게 처리 할 수 ​​있습니다. 가장 주목할만한 것은 SWFUpload입니다. 모든 것이 평등 해졌고, 아마도 이것을 통해 자바 스크립트 솔루션을 사용할 것입니다.하지만 과거에는 이것을 성공으로 사용했습니다. 이 솔루션에 대한 멋진 점은 로딩 인디케이터 및 축소 이미지와 같은 더 멋진 인터페이스가 제공된다는 것입니다.그러나 현재 사용자가 Flash + Javascript를 사용할 수 있는지 묻는 중입니다. 일부 상황에서는 작동하지 않을 수 있습니다.
  • Flash 대신 Silverlight를 사용합니다. 실제로이 솔루션을 다른 솔루션보다 훨씬 낮은 보급률로 사용할 수있는 솔루션으로 생각하지는 않습니다.
0

는 또한 파일 업로드, 플래시를 사용하여 진행 표시 줄을 표시하고 새로 고침 할 페이지에 대한 필요없이 수행하는 SwfUploader에보고를 할 수 있습니다. 데모는 here으로 볼 수 있습니다.

관련 문제