>  Q&A  >  본문

Ajax를 사용하여 데이터와 파일을 동시에 업로드하는 방법은 무엇입니까?

<p>jQuery와 Ajax를 사용하여 데이터와 파일을 제출하고 있는데 데이터와 파일을 모두 하나의 형식으로 보내는 방법을 잘 모르겠습니다. </p> <p>현재 두 가지 방법을 거의 동일한 방식으로 사용하고 있지만 데이터를 배열로 수집하는 방식이 다릅니다. 데이터는 <code>.serialize();</code>를 사용하고 파일은 <code> ;= new FormData($(this)[0]);</code></p> <p>이 두 가지 방법을 결합하여 Ajax를 통해 파일과 데이터를 하나의 형식으로 업로드할 수 있습니까? </p> <p><strong>데이터 jQuery, Ajax 및 html</strong></p> <pre class="brush:php;toolbar:false;">$("form#data").submit(function(){ var formData = $(this).serialize(); $.아약스({ URL: window.location.pathname, 유형: '포스트', 데이터: 양식데이터, 비동기: 거짓, 성공: 함수(데이터) { 경고(데이터) }, 캐시: 거짓, 콘텐츠 유형: 거짓, 프로세스 데이터: 거짓 }); 거짓을 반환; }); <form id="data" method="post"> <input type="text" name="first" value="Bob" /> <input type="text" name="middle" value="James" /> <input type="text" name="last" value="Smith" /> <버튼>제출</버튼> <p><strong>문서 jQuery, Ajax 및 html</strong></p> <pre class="brush:php;toolbar:false;">$("form#files").submit(function(){ var formData = new FormData($(this)[0]); $.아약스({ URL: window.location.pathname, 유형: '포스트', 데이터: 양식데이터, 비동기: 거짓, 성공: 함수(데이터) { 경고(데이터) }, 캐시: 거짓, 콘텐츠 유형: 거짓, 프로세스 데이터: 거짓 }); 거짓을 반환; }); <form id="files" method="post" enctype="multipart/form-data"> <입력 이름="이미지" 유형="파일" /> <버튼>제출</버튼> <p>Ajax를 통해 데이터와 파일을 하나의 형식으로 보낼 수 있도록 위의 내용을 어떻게 결합합니까? </p> <p>제 목표는 Ajax를 통해 이 모든 양식을 함께 보내는 것입니다. 이것이 가능합니까?</p> <pre class="brush:php;toolbar:false;"><form id="datafiles" method="post" enctype="multipart/form-data"> <input type="text" name="first" value="Bob" /> <input type="text" name="middle" value="James" /> <input type="text" name="last" value="Smith" /> <입력 이름="이미지" 유형="파일" /> <버튼>提交</button> <p><br /></p>
P粉012875927P粉012875927396일 전405

모든 응답(2)나는 대답할 것이다

  • P粉794177659

    P粉7941776592023-08-21 09:06:07

    또 다른 옵션은 iframe을 사용하고 양식의 대상을 iframe으로 설정하는 것입니다.

    다음을 시도해 볼 수 있습니다(jQuery를 사용함):

    으아악

    모든 브라우저에서 작동하며 데이터를 직렬화하거나 준비할 필요가 없습니다. 한 가지 단점은 진행 상황을 모니터링할 수 없다는 것입니다.

    또한 적어도 Chrome의 경우 요청은 개발자 도구의 "xhr" 탭 아래에 표시되지 않고 "doc" 아래에 표시됩니다.

    회신하다
    0
  • P粉064448449

    P粉0644484492023-08-21 00:11:35

    제 문제는 잘못된 jQuery 식별자를 사용하는 것이었습니다.

    양식을 사용하여 ajax를 사용하여 데이터와 파일을 업로드할 수 있습니다.

    PHP + HTML

    으아악

    jQuery + Ajax

    으아악

    단순화된 버전

    으아악

    회신하다
    0
  • 취소회신하다