2010-04-12 4 views
5

이미지를 업로드 할 양식을 만들고 Prototype/PHP로 처리했습니다.

$('image_upload').observe('submit', function() { 

    var params = $H(); 
    params.set('name', $('image_title').value); 
    params.set('from', $('from_who').value); 
    params.set('upload_file', $('upload_file').value); 

    new Ajax.Request('/files/upload_process.php', { 
     method:'post', 
     parameters: params, 

     onSuccess: function(r) { 
     $('uploadbox').update('<img src="/images/interface/thankyou.png" />'); 


     } 

    }) 



    }); 

양식 자체는 서버로 데이터를 전송하지만 출력하려고 할 때 print_r($_FILES['upload_file']); 아무것도 심지어는 하늘의 배열, 표시되지 않습니다.

출력이 print_r($_POST) 인 경우 매개 변수가 올바르게 전송되지만 이미지의 파일 이름 만 전송됩니다.

그래서 파일 자체가 전송되지 않는 것 같습니다. 어떻게 처리합니까? 감사합니다. 리치

+1

기록을 위해 ['FormData'] (https://developer.mozilla.org/en/XMLHttpRequest/FormData) 객체를 사용하여 AJAX를 통해 업로드 할 수 있습니다. 이 방법은 사용하기 쉽고 현재 Chrome, Safari 및 Firefox에서 지원됩니다. –

답변

6

보안상의 이유로 아약스를 통해 파일을 보낼 수 있다고 생각하지 않습니다. 양식을 iframe에 게시하고 거기에서 처리해야합니다.

+0

나를 이깁니다. +1로 오프셋 –

+1

투표 실패 이유 : 당신이 완벽한 해결책을 제공하지 않았기 때문에 다른 사람을 해고했기 때문입니다. 또는 마침내 누군가가 어떤 이유로 든 투표 할 수 있기 때문입니다. – David

+0

여기에 언급 된 이유에 대해 감사드립니다. –

3

XHR을 사용하여 파일을 업로드 할 수 없습니다.
IFRAME 또는 플래시/자바 및 브라우저의 해당 플러그인을 사용해야합니다.

관련 문제