zhangwei
2025-08-18 35cf8d289a09a6a4a34cf3d73fb41d84969ae4ee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>服务端生成签名上传文件到OSS</title>
</head>
<body>
<div class="container">
    <form>
        <div class="mb-3">
            <label for="file" class="form-label">选择文件:</label>
            <input type="file" class="form-control" id="file" name="file" required />
        </div>
        <button type="submit" class="btn btn-primary">上传</button>
    </form>
</div>
 
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function () {
    const form = document.querySelector("form");
    const fileInput = document.querySelector("#file");
 
    form.addEventListener("submit", (event) => {
        event.preventDefault();
 
        const file = fileInput.files[0];
 
        if (!file) {
            alert('请选择一个文件再上传。');
            return;
        }
 
        const filename = file.name;
 
        fetch("http://192.168.18.52:5005/api/upFile/token", { method: "GET",headers: {
    "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySWQiOjY5MDg3Njg4MTk3MzMxNywiVGVuYW50SWQiOjEzMDAwMDAwMDAwMDEsIkFjY291bnQiOiIxMzIxOTEyMjMyMCIsIlJlYWxOYW1lIjoi5byg5LiJIiwiVXNlclR5cGUiOiJDdXN0b21lciIsIkN1c3RvbWVyTG9nb2luVHlwZSI6IkRMSkciLCJpYXQiOjE3NTUxMzYwODcsIm5iZiI6MTc1NTEzNjA4NywiZXhwIjoxNzU1NzQwODg3LCJpc3MiOiJBZG1pbi5ORVQiLCJhdWQiOiJBZG1pbi5ORVQifQ.bnB_Tlq856XfOMhtVMI8QP1TTG7JqgnEFeXTdha3Sso"
  } })
            .then((response) => {
                if (!response.ok) {
                    throw new Error("获取签名失败");
                }
                return response.json();
            })
            .then((data) => {
                let formData = new FormData();
                formData.append("success_action_status", "200");
                formData.append("policy", data.policy);
                formData.append("x-oss-signature", data.signature);
                formData.append("x-oss-signature-version", "OSS4-HMAC-SHA256");
                formData.append("x-oss-credential", data.x_oss_credential);
                formData.append("x-oss-date", data.x_oss_date);
                formData.append("key", data.dir + file.name); // 文件名
                formData.append("x-oss-security-token", data.security_token);
                formData.append("file", file); // file 必须为最后一个表单域
 
                return fetch(`https://feizhengcai.oss-cn-chengdu.aliyuncs.com/cylsg/20250814094826_8462.pdf`, { 
                    method: "POST",
                    body: formData
                });
            })
            .then((response) => {
                if (response.ok) {
                    console.log("上传成功");
                    alert("文件已上传");
                } else {
                    console.log("上传失败", response);
                    alert("上传失败,请稍后再试");
                }
            })
            .catch((error) => {
                console.error("发生错误:", error);
            });
    });
});
</script>
</body>
</html>