jquery 上传附件的相关代码


function setUploadFileMethod() {
    var fileList = Cyan.Arachne.form.preWorkDtoList;
    refactorUploadFileMethod(fileList, 'uploadFiles_', 'inputFile', 'uploadForm_', 'attachmentId_', 'file-list');
}

/**
 * 设置附件上传的按钮事件
 *
 * @param fileList 列表的数据
 * @param uploadButtonName 每个上传文件的按钮id
 * @param fileInputName    每个上传文件的输入框id
 * @param uploadFormName   每个上传文件对应的form名称
 * @param attachmentName   页面上存在每个附件的inputId
 * @param listName         附件展示的ul列表class名称
 */
function refactorUploadFileMethod(fileList, uploadButtonName, fileInputName, uploadFormName, attachmentName, listName) {
    for (var i = 0; i < fileList.length; i++) {
        $('#' + uploadButtonName + i).bind("click", {index: i}, function (event) {
            var t = event.data.index;
            $('#' + fileInputName + t).click();
        });
        $('#' + fileInputName + i).bind("change", {
            index: i,
            uploadFormName: uploadFormName + i,
            attachmentName: attachmentName + i,
            listName: listName + i,
            attachmentId: fileList[i].attachmentId
        }, saveFileInit);
    }
}

function saveFileInit(event) {
    saveFileProcess(event.data.index, event.data.attachmentId, event.data.uploadFormName,
        event.data.attachmentName, event.data.listName);

}

function saveFileProcess(index, attachmentId, uploadFormName, attachmentName, listName) {
    saveFile2(attachmentId, 0, {
        callback: function (ret) {
            if (ret !== null) saveFileInfos2(ret, index, attachmentName, listName);
        },
        wait: true,
        progress: true,
        form: $('#' + uploadFormName)[0].name
    })
}

// 上传文件的接口
function saveFile2(attachmentId, index) {
    Cyan.Arachne.doPost("/emphasisJob/project/report/service/saveFileInfo?attachmentId=" + attachmentId + "&fileIndex=" + index, arguments, 3);
}

function saveFileInfos2(ret, index, attachmentName, listName) {
    if (ret !== null) {
        $('#' + attachmentName).attr("value", ret.attachmentId);
        $('.' + listName).append('
  • ' + ret.attachmentName + '' + ' ' + '' + '
  • '); } }

    相关