ajax FileUpload. js 를 사용 하여 파일 을 업로드 할 때 추가 인 자 를 추가 합 니 다.

5296 단어 ajaxFileUpload
최근 회사 의 한 프로젝트 는 엑셀 가 져 오기 기능 과 관련 되 어 있 기 때문에 ajax FileUpload 로 파일 을 업로드 할 생각 입 니 다. 여러 번 사 용 했 기 때문에 인터넷 에 도 많은 글 이 소개 되 어 있 습 니 다.사용 방법 은 나타 내지 않 는 다.그러나 추가 매개 변수 라 는 부분 에 걸 렸 습 니 다. 파일 은 백 엔 드 에 올 릴 수 있 지만 첨부 된 제 이 슨 매개 변 수 는 백 엔 드 에 전달 되 지 않 습 니 다.
인터넷 글 과 ajax FileUpload. js 소스 코드 를 보면 ajax FileUpload. js 자체 가 추가 인 자 를 지원 하지 않 습 니 다.
function ajaxFileUpload(DOMId,row){

    var param={"exam.class_id":row.class_id,

            "exam.subject_id_list":row.subject_id_list,

          "exam.subject_name_list":row.subject_name_list};

    $.ajaxFileUpload({

        url:'importExcel_Exam_n.do?'+param,

        type:'post',

        secureuri: false,

        fileElementId: DOMId,

        dataType:'text/plain',

        data:param,         success: function(data, status){  

            $('#imageName').html(data);

        },

        error: function(data, status, e){

            $('#imageName').html('    ');

        }

    });

}

data 라 는 매개 변 수 는 ajax FileUpload. js 에 의 해 지원 되 지 않 습 니 다.그러나 ajax FileUpload. js 를 변경 하여 이 인 자 를 지원 할 수 있 습 니 다.구체 적 으로 다음 과 같다.
ajax FileUpload. js 소스 코드 를 엽 니 다.
createUploadForm: function(id, fileElementId){



 var formId = 'jUploadForm' + id;

 var fileId = 'jUploadFile' + id;

 var form = jQuery('<form  action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>');



//...    



return form;



}

빨간색 부분 코드 추가:
createUploadForm: function(id, fileElementId,data){



 var formId = 'jUploadForm' + id;

 var fileId = 'jUploadFile' + id;

 var form = jQuery('<form  action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>');



//...    

if(data){

      for(var i in data){

          $('<input type="hidden" name="'+i+'" value="'+data[i]+'"/>').appendTo(form);

      }

}

return form;

}

한 가지 더 수정 해 야 할 것 은 data 인 자 를 받 기 위해 서 입 니 다.
ajaxFileUpload: function(s) {

        // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout  

        s = jQuery.extend({}, jQuery.ajaxSettings, s);

        var id = s.fileElementId;        

  var form = jQuery.createUploadForm(id, s.fileElementId);

빨간색 부분 추가:
ajaxFileUpload: function(s) {

        // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout  

        s = jQuery.extend({}, jQuery.ajaxSettings, s);

        var id = s.fileElementId;        

  var form = jQuery.createUploadForm(id, s.fileElementId,s.data);

저장 을 수정 하고 다시 실행 하면 배경 에서 전 달 된 제 이 슨 인 자 를 받 을 수 있 습 니 다!

좋은 웹페이지 즐겨찾기