2009-08-21 6 views
0

사용자가 파일을 선택한 다음 PHP에서 내용을 db에 넣으려고합니다. 이제 마지막 부분 (PHP에서 파일 처리하기)은 쉽다. 그러나 새로운 페이지로드가없는 사용자가 선택한 파일을 처리 할 수있는 방법이 있습니까?html, javascript 및 php로 사용자가 선택한 파일을 업로드하고 처리합니다.

나는 다음과 같은 사용하는 경우 :

<FORM ACTION="upload.php" METHOD="post" ENCTYPE="multipart/form-data"> 
<INPUT TYPE="file" NAME="somefile"><BR /> 
<INPUT TYPE="submit" NAME="submit" VALUE="Upload"> 
</FORM> 

페이지 upload.php로는보기 자동 후 나는 데이터베이스에 업로드 된 파일을 삽입 할 수 있습니다로드합니다.

javascript, php 및 xajax 조합을 사용하여 파일을 처리하고 싶습니다. 나는 이런 일이 가능하지 않다고 생각한다 :

<FORM ACTION="javascript:xajax_proces_file()" METHOD="post" ENCTYPE="multipart/form-data"> 
<INPUT TYPE="file" NAME="somefile"><BR /> 
<INPUT TYPE="submit" NAME="submit" VALUE="Upload"> 
</FORM> 

함수 xajax_process_file()이 호출 될 때 파일이 업로드되지 않기 때문에. 아니면 그렇지? 나는 자바 스크립트, HTML 및 PHP로 업로드의 원칙을 완전히 이해하지 못한다고 생각합니다.

도움이나 설명을 제공해 주시면 감사하겠습니다.

답변

2

그것은이 두 가지로 생각할하는 데 도움이 될 수 있습니다 아버지의 형태를 취소 JS에 의해 진행, 양식이있는 iframe 쿼리를 처리 한 후, iframe이에 작업을 지시하는 것입니다 단계 프로세스.

먼저 사용자가 양식을 채우고 제출합니다 (1 단계).

두 번째 (기본 동작)는 지정된 대상 파일이 양식의 입력을 받아들이는 데 사용합니다. 당신은 거의 폼 "액션"을 링크로 생각할 수 있습니다 - 링크 클릭의 기본 동작은 링크의 결과를 표시하는 것입니다. 양식 작업에도 동일하게 적용됩니다. 양식 작업의 결과를 표시합니다.

이제 자바 스크립트를 통해 특정 이벤트에 대한 요소의 기본 동작을 비활성화 할 수 있습니다. 자바 스크립트를 통해 브라우저의 HTTP 메커니즘에 액세스하여 HTTP 요청 (모든 페이지 요청은 URL 막대 또는 페이지 링크 또는 Google 검색 결과)을 보내고받을 수 있습니다.

간단히 말해서 AJAX는 브라우저에서 HTTP 메커니즘을 사용하여 웹 서버에 요청을 보내고 전통적인 클릭 이벤트를 사용하지 않고 응답을받을 수있는 간단한 용어입니다. 그런 다음 이것을 JavaScript 사용과 결합하여 기본 동작을 "해제"하고 페이지에서 새로 고침 할 필요없이 서버에서 정보를 가져 와서 페이지에 추가하기 위해 지정한 작업을 수행하십시오.

특정 요소에 대한 기본 동작을 방지하기 위해 여러 번 코드에 false가 반환됩니다. 귀하의 양식에도 동일하게 적용됩니다. 자바 스크립트 사용 :

form.onSubmit = function() { 
    blah blah blah.....Use ajax to send the information to the form handler 
    return false; //Prevents the defualt action of the submit event 
} 

당신이 AJAX 정말 처음 사용하는 경우를, 당신이 tutorial 다음이 one을 확인하시기 바랍니다. 마지막으로 jQuery와 같은 Javascript 프레임 워크를 사용하는 것이 좋습니다. 훌륭한 기능을 제공하지만 AJAX의 기능이 쉽고 내장되어 있습니다.

또 다른 tutorial은 페이지 새로 고침이없는 양식 제출 (jquery 사용)입니다.

+0

답장을 보내 주셔서 감사합니다. 나는 Ajax의 원리를 이해하고 이미 xajax와 jquery를 사용한다.그러나 나는 아약스와 함께 업로드의 원리를 이해하지 못한다. 마지막 튜토리얼은 업로드 양식으로 작업하고 싶지만 어떻게 작동하는지 또는 작동하지 않을지 모르겠다. 누구 제안? – jzp74

+0

지금 알겠지만 진정한 아약스 업로드는 불가능합니다. 지금 Valums Ajax 업로드를 http://valums.com/ajax-upload/에서 사용하고 있습니다. – jzp74

0

대안

관련 문제