[JQUERY] 어떻게 jQuery를 아약스 - 요청 FormData 객체를 보내? [복제]
JQUERY어떻게 jQuery를 아약스 - 요청 FormData 객체를 보내? [복제]
해결법
-
1.난 당신이 이런 식으로 할 수 있으리라 생각합니다 :
난 당신이 이런 식으로 할 수 있으리라 생각합니다 :
var fd = new FormData(); fd.append( 'file', input.files[0] ); $.ajax({ url: 'http://example.com/script.php', data: fd, processData: false, contentType: false, type: 'POST', success: function(data){ alert(data); } });
노트:
-
2.당신을 위해 사용할 수있는 몇 아직 언급 할 수있는 기술이있다. 아약스 PARAMS에서의 contentType 속성을 설정 시작합니다.
당신을 위해 사용할 수있는 몇 아직 언급 할 수있는 기술이있다. 아약스 PARAMS에서의 contentType 속성을 설정 시작합니다.
pradeek의 예에 건물 :
$('form').submit(function (e) { var data; data = new FormData(); data.append('file', $('#file')[0].files[0]); $.ajax({ url: 'http://hacheck.tel.fer.hr/xml.pl', data: data, processData: false, type: 'POST', // This will override the content type header, // regardless of whether content is actually sent. // Defaults to 'application/x-www-form-urlencoded' contentType: 'multipart/form-data', //Before 1.5.1 you had to do this: beforeSend: function (x) { if (x && x.overrideMimeType) { x.overrideMimeType("multipart/form-data"); } }, // Now you should be able to do this: mimeType: 'multipart/form-data', //Property added in 1.5.1 success: function (data) { alert(data); } }); e.preventDefault(); });
비 예상되는 일을 jQuery를 아약스를 강요 할 때 경우에 따라서는 beforeSend 이벤트는 그것을 할 수있는 좋은 장소입니다. 사람들이 그 1.5.1에 jQuery를에 추가되기 전에 MIME 타입 재정의 beforeSend을 사용하고 잠시 동안. 당신은 방금 전에 전송 이벤트에 jqXHR 객체에 아무것도 수정할 수 있어야합니다.
-
3.당신은 다음과 같은 코드를 사용하여 아약스 요청에 FormData 객체를 보낼 수 있습니다
당신은 다음과 같은 코드를 사용하여 아약스 요청에 FormData 객체를 보낼 수 있습니다
$("form#formElement").submit(function(){ var formData = new FormData($(this)[0]); });
이것은 허용 대답하지만, 질문 항목에 대한 실제 대답은 매우 유사하다. 이것은 FormData에 자동으로 폼 요소를 제출하면 FormData 변수에 수동으로 APPEND 데이터에 필요하지 않습니다.
이 같은 아약스 방법 외모,
$("form#formElement").submit(function(){ var formData = new FormData($(this)[0]); //append some non-form data also formData.append('other_data',$("#someInputData").val()); $.ajax({ type: "POST", url: postDataUrl, data: formData, processData: false, contentType: false, dataType: "json", success: function(data, textStatus, jqXHR) { //process data }, error: function(data, textStatus, jqXHR) { //process error msg }, });
수동과 같은 매개 변수로 FormData 객체 내부의 폼 요소를 전달할 수 있습니다
var formElem = $("#formId"); var formdata = new FormData(formElem[0]);
희망이 도움이. ;)
-
4.나는이 의지의 도움을 희망,이처럼을하고 나를 위해 일입니다 :)
나는이 의지의 도움을 희망,이처럼을하고 나를 위해 일입니다 :)
<div id="data"> <form> <input type="file" name="userfile" id="userfile" size="20" /> <br /><br /> <input type="button" id="upload" value="upload" /> </form> </div> <script> $(document).ready(function(){ $('#upload').click(function(){ console.log('upload button clicked!') var fd = new FormData(); fd.append( 'userfile', $('#userfile')[0].files[0]); $.ajax({ url: 'upload/do_upload', data: fd, processData: false, contentType: false, type: 'POST', success: function(data){ console.log('upload success!') $('#data').empty(); $('#data').append(data); } }); }); }); </script>
-
5.당신은 헤더를 조작하는 $ 아약스 beforeSend 이벤트를 사용할 수 있습니다.
당신은 헤더를 조작하는 $ 아약스 beforeSend 이벤트를 사용할 수 있습니다.
…
beforeSend: function(xhr) { xhr.setRequestHeader('Content-Type', 'multipart/form-data'); }
…
http://msdn.microsoft.com/en-us/library/ms536752(v=vs.85).aspx : 자세한 내용은이 링크를 참조하십시오
-
6.자바 스크립트 :
자바 스크립트 :
function submitForm() { var data1 = new FormData($('input[name^="file"]')); $.each($('input[name^="file"]')[0].files, function(i, file) { data1.append(i, file); }); $.ajax({ url: "<?php echo base_url() ?>employee/dashboard2/test2", type: "POST", data: data1, enctype: 'multipart/form-data', processData: false, // tell jQuery not to process the data contentType: false // tell jQuery not to set contentType }).done(function(data) { console.log("PHP Output:"); console.log(data); }); return false; }
PHP :
public function upload_file() { foreach($_FILES as $key) { $name = time().$key['name']; $path = 'upload/'.$name; @move_uploaded_file($key['tmp_name'], $path); } }
-
7.당신은 아약스 사용 "jquery.form.js"을 사용하여 파일을 제출하려면 이것은 쉽게 모든 양식 요소를 제출합니다.
당신은 아약스 사용 "jquery.form.js"을 사용하여 파일을 제출하려면 이것은 쉽게 모든 양식 요소를 제출합니다.
샘플 http://jquery.malsup.com/form/#ajaxSubmit
거친보기 :
<form id='AddPhotoForm' method='post' action='../photo/admin_save_photo.php' enctype='multipart/form-data'>
<script type="text/javascript"> function showResponseAfterAddPhoto(responseText, statusText) { information= responseText; callAjaxtolist(); $("#AddPhotoForm").resetForm(); $("#photo_msg").html('<div class="album_msg">Photo uploaded Successfully...</div>'); }; $(document).ready(function(){ $('.add_new_photo_div').live('click',function(){ var options = {success:showResponseAfterAddPhoto}; $("#AddPhotoForm").ajaxSubmit(options); }); }); </script>
-
8.대신 - fd.append ( 'userfile로', $ ( '# userfile로') [0] .files [0]);
대신 - fd.append ( 'userfile로', $ ( '# userfile로') [0] .files [0]);
사용 - fd.append ( '파일', $ ( '# userfile로') [0] .files [0]);
from https://stackoverflow.com/questions/6974684/how-to-send-formdata-objects-with-ajax-requests-in-jquery by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 자바 스크립트 / jQuery를 사용하여 파일 다운로드 (0) | 2020.09.22 |
---|---|
[JQUERY] AJAX와 크로스 도메인 엔드 포인트로드 (0) | 2020.09.22 |
[JQUERY] 어떻게 JQuery와 동기보다는 비동기, Ajax 요청을 수행 할 수 있습니까? (0) | 2020.09.22 |
[JQUERY] CSTE 연구진은 .click 대 ( '클릭')의 차이 () (0) | 2020.09.22 |
[JQUERY] jQuery를 : 아약스 호출 성공 후 반환 데이터 [중복] (0) | 2020.09.22 |