jquery實現文件上傳到阿里雲OSS

//policy 要通過base64編碼, signature 還要進一步處理,能夠查閱官方文檔
function OssUpload(param, file, fileName, callBack) {
        var policyBase64 = Base64.encode(param.policy);
        var signature = param.signature.split(':')[1];
        var filePathName = param.filePath + "/" + param.fileName;
        var fileFullName = param.contentHostName + "/" + filePathName;
        var request = new FormData();
        request.append('OSSAccessKeyId', param.accessKeyId);
        request.append('policy', policyBase64);
        request.append('Signature', signature);
        request.append('key', filePathName);
        for (var i in param.metaDatas) {
            request.append(i, param.metaDatas[i]);
        }
        request.append('file', file);
        request.append('submit', "Upload to OSS");
        $.ajax({
            url: param.contentHostName,
            data: request,
            processData: false,
            cache: false,
            async: false,
            contentType: false,
            //關鍵是要設置contentType 爲false,否則發出的請求頭 沒有boundary
            //該參數是讓jQuery去判斷contentType
            type: "POST",
            success: function (data, textStatus, request) {
                if (textStatus === "nocontent") {
                    callBack(fileFullName);
                    alert("success!");
                } else {
                    alert(textStatus);
                }
            }
        });
    }
相關文章
相關標籤/搜索