blob: a50f8ac1eeb1cdede5cf96ee8faea69973fd3b70 [file] [log] [blame]
// ./services/torrentService.js
import axios from 'axios';
// IMPORTANT: Replace with your actual backend API URL
const API_BASE_URL = 'http://localhost:5000/api';
export const uploadTorrent = async (formData) => {
try {
const response = await axios.post(`${API_BASE_URL}/torrents/upload`, formData, {
headers: {
'Content-Type': 'multipart/form-data', // Essential for file uploads
// Add any authentication tokens here if your backend requires them
// 'Authorization': `Bearer ${localStorage.getItem('authToken')}`
},
onUploadProgress: (progressEvent) => {
// You can use this to show upload progress to the user
const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
console.log(`Upload progress: ${percentCompleted}%`);
// You could pass this percentage back to the component via a callback
},
});
return response.data; // Your backend should return the parsed torrent info here
} catch (error) {
console.error('Error in uploadTorrent service:', error.response ? error.response.data : error.message);
// Throw a more specific error message based on backend response if available
throw new Error(error.response?.data?.message || '文件上传失败,请稍后再试。');
}
};