<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Upload Folder Example</title> </head> <body> <form id="uploadForm" enctype="multipart/form-data"> <input type="file" id="avatar" name="avatar"><br><br> <input type="file" id="poster" name="poster"><br><br> <input type="file" id="folderInput" webkitdirectory mozdirectory directory multiple> </form> <button onclick="uploadFolder()">Upload</button> <script> function login() { // 用户名和密码设置为 "admin" let username = 'admin'; let password = 'admin'; // 创建 URLSearchParams 对象并添加参数 let params = new URLSearchParams(); params.append('username', username); params.append('password', password); // 设置请求头 let headers = { 'Content-Type': 'application/x-www-form-urlencoded' }; // 发送 POST 请求 fetch('http://localhost:8089/login', { method: 'POST', headers: headers, body: params.toString() // 将 URLSearchParams 对象转换为字符串 }) .then(response => { if (response.ok) { return response.json(); // 如果响应状态码为 2xx,解析响应体为 JSON } else { throw new Error('Network response was not ok'); } }) .then(data => { console.log('登录成功:', data); // 处理响应数据 }) .catch(error => { console.error('登录失败:', error); // 处理错误 }); } console.log("========== login(); ==========") // 调用 login 函数 login(); function uploadFolder() { let input = document.getElementById('folderInput'); console.log(input) // 确保用户选择了一个文件夹 if (!input.files || !input.files.length) { return alert('Please select a folder to upload.'); } let files = input.files; let formData = new FormData(); // 使用append()方法动态添加数据 formData.append('name', '马斯克'); formData.append('gender', 'male'); formData.append('personality', '科技大佬'); formData.append('catchphrases', '口头禅'); formData.append('backgroundInfo', '背景信息'); formData.append('visibility', 'public'); formData.append('id', '6'); formData.append('model_driver_type', '3d'); formData.append('voice_type', '东北辽宁少女口音'); console.log(formData.get("id")) // 添加文件 let avatarInput = document.getElementById('avatar'); if(avatarInput.files[0]) { formData.append('avatar', avatarInput.files[0]); } let posterInput = document.getElementById('poster'); if(posterInput.files[0]) { formData.append('poster', posterInput.files[0]); } // 将文件的相对路径和文件对象添加到FormData中 for (let i = 0; i < files.length; i++) { formData.append('mode_file', files[i], files[i].webkitRelativePath); } // 创建一个 XMLHttpRequest 对象进行异步请求 let request = new XMLHttpRequest(); request.open('POST', 'http://localhost:8089/digitalpersons/edit', true); request.onload = function() { if (request.status === 200) { // 文件上传成功的处理 console.log(request.responseText); } else { // 文件上传失败的处理 console.error(request.responseText); } }; // 发送FormData对象到服务器 request.send(formData); } console.log(1111) </script> </body> </html>