web开发中上传文件

js文件的添加:

<%@ include file="../../js/file/fileAddM.js"%>

            var keyId = dojo.byId("keyId").value;
            var fkType = "files.task.file";
            var filePath = "files/task/file";;
            
            var isOne = 'N';
            var fileTdId = "addFileTd_files.task.file";
            var fileBtnId = "addFileBtn_" + fkType;
            var fileTdEle = dojo.byId(fileTdId);
            var src = "<%=path%>/measure/task/file/addIframe.jsp";
            var query = "";
            var addFileBtn = new dijit.form.Button({
                id: fileBtnId,
                label: '上传文件',
                onClick: function (){
                //alert(keyId);
                //alert(fileTdEle);
                    addFile(keyId, fkType, isOne, filePath, src, fileTdId, fileBtnId, query);
                }
            })
            fileTdEle.appendChild(addFileBtn.domNode);

<td class='tdLabel'>
<label for='addFileTd_files.task.file'>附件:</label>
 </td>

<td colspan='3' id='addFileTd_files.task.file'></td> 

fileAddM.js文件

<script type="text/javascript">
//多个文件的上传,通过打开模态对话框
var count = 0;
var fileItem;
function addFile(fkId, fkType, isOne, filePath, src, addFileTdId, addFileBtnId){
    //====html中一些元素的ID
    
    var isOneFile = 'Y';//默认是单个文件,即只能上传一次
    if(isOne && isOne != undefined){
        isOneFile  = isOne;
    }

    //如果是单个文件上传,则当文件上传成功后,将 出现一个超链接,一个’删除‘按钮
    if(isOneFile == 'Y'){
        var deleteBtnId = 'deleteBtn' + fkType;
        var fileDownloadAId = 'fileDownloadA' + fkType;
        var deleteBtnLabel = '\u5220\u9664/\u91cd\u65b0\u4e0a\u4f20';//删除/重新上传
    }else{
    //如果是多个文件上传,则当文件上传成功后,将 出现一个’继续上传‘按钮、一个超链接,一个’删除‘按钮;    
        count ++;
        var deleteBtnId = 'deleteBtn' + fkType + count;
        var fileDownloadAId = 'fileDownloadA' + fkType + count;
        var deleteBtnLabel = '&#21024;&#38500;';//删除
    }
    var query;
    var dialog;
    if(dojo.isIE){
        query = 'fkId=' + fkId + '&fkType=' + fkType + '&filePath=' + filePath + '&isModal=Y';
        src = encodeURI( src + '?' + query);
        dialog = require.toUrl(src);
        fileItem = window.showModalDialog(dialog, window,'dialogWidth=900px;dialogHeight=300px;center=yes;resizable=yes;scroll=yes;center=yes');
    }else{//针对chromewindow.showModalDialog不好使的情况的解决办法
        query = 'fkId=' + fkId + '&fkType=' + fkType + '&filePath=' + filePath + '&isModal=N';
        src = encodeURI( src + '?' + query);
        dialog = require.toUrl(src);
        window.open(dialog, window,'width=900px,height=300px,resizable=yes,scroll=yes,center=yes');
    }

    if(fileItem != null){
        var fileId = fileItem.fileId;
        var fileName = fileItem.fileName;
        var postfix = fileItem.postfix;

        var tdEle = dojo.byId(addFileTdId);
        //当只是一个文件时,把这个上传的按钮去掉
        if(isOneFile == 'Y'){
            var addFileBtn = dijit.byId(addFileBtnId);
            if(addFileBtn){
                addFileBtn.destroyRecursive();
            }
        }
        var aEle = document.createElement('a');
        tdEle.appendChild(aEle);
        
        var url = '<%=path%>/measure/doc/fileDownloadAction.action?fileId=' + fileId;
        aEle.setAttribute('id', fileDownloadAId);
        aEle.setAttribute('href', url);
        aEle.setAttribute('title', '\u4e0b\u8f7d\u6587\u4ef6');//点击下载文件
        aEle.appendChild(document.createTextNode(fileName+postfix));

        //----先Destroy button
        var btnOld = dijit.byId(deleteBtnId);
        if(btnOld){
            btnOld.destroyRecursive();
        }
        var deleteBtn = new dijit.form.Button({
            id: deleteBtnId,
            label: deleteBtnLabel,
            onClick: function (){
                //1.先删除文件
                //===    
                var query = 'fileId=' + fileId;
                dojo.xhrPost({
                    postData : query,
                    url : '<%=path%>/measure/doc/fileDeleteAction.action',
                    handleAs : 'json',
                    load : function(response){
                            var json = response;
                            if(json == null){
                                return;
                            }
                            var result = json.result;
                            if(result == 'success'){
                                //2.再在界面上显示,删除A即已经上传的文件的链接显示部分
                                var tdEle = dojo.byId(addFileTdId);
                                var aEle = dojo.byId(fileDownloadAId);
                                tdEle.removeChild(aEle);

                                if(isOneFile == 'Y'){
                                    var addFileBtn = dijit.byId(addFileBtnId);
                                    if(addFileBtn){
                                        addFileBtn.destroyRecursive();
                                    }
                                    
                                    var addFileBtnNew = new dijit.form.Button({
                                        id: addFileBtnId,
                                        label: '\u4e0a\u4f20\u6587\u4ef6',//上传文件
                                        onClick: function (){
                                            addFile(fkId, fkType, 'Y', filePath, src, addFileTdId, addFileBtnId);
                                        }
                                    })
                                    tdEle.appendChild(addFileBtnNew.domNode);
                                }

                                //3.删除自己
                                deleteBtn.destroyRecursive();

                            }else{
                                alert(json.info);
                            }
                        }
                    });
                //====
            }
        })
        tdEle.appendChild(deleteBtn.domNode);
        //tdEle.appendChild(document.createTextNode(" | "));
    }
}

</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值