Tentu, berikut adalah contoh kode JavaScript fetch untuk mengunggah file, mengirim header, dan variabel POST:
JavaScript
async function uploadFile(file, url, headers, postData) {
const formData = new FormData();
formData.append('file', file); // 'file' adalah nama field di sisi server
// Tambahkan variabel POST ke FormData
for (const key in postData) {
formData.append(key, postData[key]);
}
try {
const response = await fetch(url, {
method: 'POST',
headers: headers,
body: formData,
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const result = await response.json(); // Atau response.text(), tergantung respons server
return result;
} catch (error) {
console.error('Error:', error);
throw error;
}
}
// Contoh penggunaan:
const fileInput = document.getElementById('fileInput');
const uploadButton = document.getElementById('uploadButton');
uploadButton.addEventListener('click', async () => {
const file = fileInput.files[0];
const url = '/upload'; // Ganti dengan URL upload Anda
const headers = {
'Authorization': 'Bearer token_anda', // Contoh header otorisasi
};
const postData = {
'nama': 'contoh_nama',
'deskripsi': 'contoh_deskripsi',
};
try {
const result = await uploadFile(file, url, headers, postData);
console.log('Upload berhasil:', result);
// Lakukan sesuatu dengan hasil upload
} catch (error) {
console.error('Upload gagal:', error);
// Tangani error upload
}
});