api documentation

simple api for upload temporary image

endpoint

POST /api/upload.php

parameters

success response

{
  "status": true,
  "filename": "abc1.jpg",
  "url": "https://domain.com/f/abc1.jpg",
  "expire_minutes": 30
}

error response

{
  "status": false,
  "message": "unsupported type"
}

Contoh Penggunaan (JavaScript)

Berikut adalah contoh fungsi async/await untuk mengupload file menggunakan Fetch API.

async function uploadImage(file, expireMinutes = 30) {
  const formData = new FormData();
  formData.append('file', file);
  formData.append('expire', expireMinutes);

  try {
    const response = await fetch('/api/upload.php', {
      method: 'POST',
      body: formData
    });

    const result = await response.json();

    if (result.status) {
      console.log('Upload successful!');
      console.log('URL:', result.url);
      return result.url;
    } else {
      console.error('Upload failed:', result.message);
      return null;
    }
  } catch (error) {
    console.error('Network or server error:', error);
    return null;
  }
}

Anda bisa memanggil fungsi ini dari event listener, misalnya saat file dipilih:

// HTML: <input type="file" id="fileInput">
// HTML: <select id="expireSelect">...</select>

const myFileInput = document.getElementById('fileInput');
const myExpireSelect = document.getElementById('expireSelect');

myFileInput.addEventListener('change', async (event) => {
  const file = event.target.files[0];
  const expire = myExpireSelect.value;
  
  if (file) {
    console.log('Uploading...');
    const fileUrl = await uploadImage(file, expire);
    
    if (fileUrl) {
      console.log('File is available at:', fileUrl);
      // Anda bisa tampilkan URL ke user di sini
    }
  }
});