• vue使用formData进行文件上传


    本文为博主原创,未经允许不得转载

    1.vue页面

    <ux-form ref="formRef" layout="vertical">
        <ux-form-item label="证书名称">
            <ux-field-decorator name="authorizationDomain">
                <ux-input v-model="form.authorizationDomain" />
            </ux-field-decorator>
        </ux-form-item>
        <ux-form-item label="客户">
            <ux-field-decorator name="customerId">
                <ux-select v-model="form.customerId" name="customerId"
                    placeholder="请选择客户">
                    <ux-option 
                        v-for="customerInfo in customerArray" 
                        :key="customerInfo.id"
                        :label="customerInfo.name"
                        :value="customerInfo.id">
                    </ux-option>
                </ux-select>
            </ux-field-decorator>
        </ux-form-item>
        <ux-form-item label="上传公钥">
            <ux-field-decorator name="publicKey">
                <ux-upload name="publicKey" v-model="publicFileList" :multiple="false" control
                 @change="onPublicChange" :before-upload="beforeUpload">
                    <ux-button icon="upload">浏览</ux-button>
                    注:公钥:crt|pem|cer 
                </ux-upload>
            </ux-field-decorator>
        </ux-form-item>
        <ux-form-item label="上传私钥">
            <ux-field-decorator name="privateKey">
                <ux-upload name="privateKey" v-model="privateFileList" control
                @change="onPrivateChange" :before-upload="beforeUpload ">
                    <ux-button icon="upload">浏览</ux-button>
                    注:私钥:key 
                </ux-upload>
            </ux-field-decorator>
        </ux-form-item>
    </ux-form>

    2.上传文件时的校验

    onPublicChange({fileList}) {
        try {
            var file = fileList[fileList.length - 1];
            if (file && !/.(crt|pem|cer)$/.test(file.name)){
                UxMessage.warning('请上传正确格式的公钥');
                return;
            }
            this.publicFileList = fileList.slice(fileList.length - 1, fileList.length);
        } catch(e) {
            console.log(e);
        }
    },    
    onPrivateChange({fileList}) {
        try {
            var file = fileList[fileList.length - 1];
            if (file && !/.(key)$/.test(file.name)){
                UxMessage.warning('请上传正确格式的私钥');
                return;
            }
            this.privateFileList = fileList.slice(fileList.length - 1, fileList.length);
        } catch(e) {
            console.log(e);
        }
    }, 

    3.使用formData上传后台:

     //创建 formData 对象
    let formData = new FormData();
    //多个文件上传
    formData.append("publicFile", publicKey);  // 文件对象
    formData.append("privateFile", privateKey);  // 文件对象  
    formData.append("authorizationDomain", values.authorizationDomain);
    formData.append("customerId", values.customerId);            
                
     _this.$http.post('/certificate/updateCheck.do',formData)
     .then(function (response) {            
        }    

    4.java代码:

        @ResponseBody
        @RequestMapping(value = "/updateCheck", method = {RequestMethod.POST})
        public RequestResult updateCheck(Certificate certificate) {
                }
    public class Certificate {        
            private Long customerId;
    
            private String authorizationDomain;
            
            private MultipartFile publicFile;
    
            private MultipartFile privateFile;            
        }    

     5.效果图:

  • 相关阅读:
    【BZOJ2879】【NOI2012】美食节(费用流)
    HN2018省队集训
    【HDU5421】Victor and String(回文树)
    【BZOJ2878】【NOI2012】迷失游乐园(动态规划)
    【BZOJ5338】[TJOI2018]异或(主席树)
    【BZOJ2432】【NOI2011】兔农(数论,矩阵快速幂)
    【BZOJ2436】【NOI2011】NOI嘉年华(动态规划)
    【BZOJ2437】【NOI2011】兔兔与蛋蛋(博弈论,二分图匹配)
    【BZOJ2109/2535】【NOI2010】航空管制(贪心)
    【BZOJ1565】【NOI2009】植物大战僵尸(网络流)
  • 原文地址:https://www.cnblogs.com/zjdxr-up/p/10846630.html
Copyright © 2020-2023  润新知