import axios from 'axios'; /* * @Author: jukaifeng jukaifeng@lingtu.com * @Date: 2024-10-24 09:03:50 * @LastEditors: jukaifeng jukaifeng@lingtu.com * @LastEditTime: 2024-10-24 13:51:16 * @FilePath: /case-uploads/client/index.js * @Description: */ const el_file = document.querySelector('#file'); const el_btn = document.querySelector('#upload'); const el_file2 = document.querySelector('#file2'); const el_btn2 = document.querySelector('#upload2'); const el_file3 = document.querySelector('#file3'); const el_btn3 = document.querySelector('#upload3'); // form-data上传 el_btn.addEventListener('click', () => { if (!el_file.value) { alert('请选择文件'); return; } const file = el_file.files[0]; const formData = new FormData(); formData.append('file', file); axios.post('http://localhost:3000/upload', formData, { headers: { 'Content-Type': 'application/form-data' } }).then(res => { console.log(res); if (res.data.code === 'success') { alert('上传成功'); el_file.value = ''; } else { alert('上传失败'); el_file.value = ''; } }).catch(err => { console.error(err); alert('上传失败'); el_file.value = ''; }); }); //base64上传 el_btn2.addEventListener('click', () => { if (!el_file2.value) { alert('请选择文件'); return; } const file = el_file2.files[0]; const ext = file.name.split('.').pop(); const reader = new FileReader(); reader.onload = (e) => { const uint8Array = new Uint8Array(e.target.result); const str = uint8Array.reduce((prev, byte) => { return prev + String.fromCharCode(byte); }, ''); const base64Data = btoa(str); axios.post('http://localhost:3000/base64', { ext, file: base64Data }).then(res => { console.log(res); if (res.data.code === 'success') { alert('上传成功'); el_file2.value = ''; } else { alert('上传失败'); el_file2.value = ''; } }).catch(err => { console.error(err); alert('上传失败'); el_file2.value = ''; }); }; reader.readAsArrayBuffer(file); }); //二进制上传 el_btn3.addEventListener('click', () => { if (!el_file3.value) { alert('请选择文件'); return; } const file = el_file3.files[0]; const ext = file.name.split('.').pop(); const reader = new FileReader(); reader.onload = () => { const binaryData = reader.result; console.log(ext); axios.post('http://localhost:3000/binary', binaryData, { headers: { 'Content-Type': 'application/octet-stream', 'x-ext': ext } }).then(res => { console.log(res); if (res.data.code === 'success') { alert('上传成功'); el_file3.value = ''; } else { alert('上传失败'); el_file3.value = ''; } }).catch(err => { console.error(err); alert('上传失败'); el_file3.value = ''; }); }; reader.readAsArrayBuffer(file); });