java后端验证后前台直接上传oss

自用代码记录

upload_oss_file: function (file, orderId, success, error = function () {}, progress) {
   if (!orderId) {
        layer.msg(传入的订单id为空, {icon: 2});
        return error();
    }
    if (!file || file.size == 0) {
        layer.msg(传入的文件为空, {icon: 2});
        return error();
    }
    admin.req(aliyunOss/getOSSSign, {}, function (data) {
        if (data.code == 0) {
            var formData = new FormData();
            var fileName = `order/${admin.getNowFormatDate()}/${orderId}/${orderId}-${parseInt(Math.random() * 100000000)}${file.name.substring(file.name.lastIndexOf(.), file.name.length)}`;
            var fileUrl = data.data.dir + / + fileName;
            formData.append(key, fileUrl);
            formData.append(policy, data.data.policy);
            formData.append(OSSAccessKeyId, data.data.accessid);
            formData.append(signature, data.data.signature);
            formData.append(success_action_status, 200);
            formData.append(file, file);
            $.ajax({
                async: true,
                url: data.data.domain,
                processData: false,
                cache: false,
                contentType: false,
                type: POST,
                data: formData,
                success: function () {
                    return success(data.data.domain + / + fileUrl);
                },
                error: error,
                xhr: function () {
                    var xhr = new XMLHttpRequest();
                    xhr.upload.addEventListener(progress, progress)
                    return xhr;
                }
            })
        } else {
            layer.msg(data.msg, {icon: 2});
        }
    }, POST);
},
经验分享 程序员 微信小程序 职场和发展