2010-11-29 5 views
1

업로드 된 파일을 처리하기 위해 파일을 업로드하는 데 사용되는 양식과 서버 측에 CGI 프로그램이 있습니다. 파일이 클라이언트로 다시 전달하려는 다른 파일 이름으로 바뀌므로 결과를 반환하기 위해 JSON을 사용하려고하지만 브라우저는 항상 returnd 문서를 파일에 저장하라는 메시지를 표시합니다.파일을 업로드하고 json 결과를 파싱 할 수 있습니까?

결론 : 파일을 업로드하고 HTTP 응답에서 구문 분석하여 서버 측에서 생성 한 새 파일 이름을 가져 오려고합니다.

 <form action="/a.bc?cmd=upload&user_name=binc2&size=100&type=normal" method="post" enctype="multipart/form-data"> 
       <input type="file" name="image"> 
       <input type="submit" value="Submit" /> 
       <input type="text" value="ade75596e1d9a04d4ae0c1e81aa8fcf0" name="key" /> 
     </form> 

게시물에 JSON 응답이 표시됩니다.

답변

1

실제로 아약스 요청을하지 않는 것 같군요 ... 머리말은 application/json이기 때문에 다운로드하라는 메시지가 표시됩니다. 아약스 요청을 실행하지 않거나 다른 스크립트로 응답을 소비하는 경우 json을 사용할 이유가 없으며 렌더링하려는 모든 것을 렌더링합니다.

또한 ajax로 파일을 직접 업로드 할 수 없습니다. 이 작업을 수행해야하는 경우 다양한 기술에 대한 "ajax 업로드"를 검색하십시오.

+0

AJAX .ajax() 호출을 사용하여 파일을 게시 할 수 있습니까? 브라우저에 보안 허점이 있기 때문에 허용하지 않을 것입니다. –

+0

아니요, 대안을 사용해야합니다 (실제로 일부 브라우저에서는 네이티브로 할 수 있지만 실제로는 할 수 없으므로 일반적으로 다른 브라우저에서는 대체해야합니다). 가장 일반적인 방법은 숨겨진 iframe을 사용하는 것입니다. 여러 가지 jquery 플러그인이 있습니다. http://www.webdeveloperjuice.com/2010/02/13/7-trusted-ajax-file-upload-plugins-using-jquery/ – prodigitalson

관련 문제