हल्का
कोर पैकेज gzipped में 10KB से कम। इष्टतम आकार के लिए ट्री-शेकेबल।
TypeScript
व्यापक टाइप परिभाषाओं के साथ TypeScript में लिखा गया।
शून्य निर्भरताएं
कोई रनटाइम निर्भरता नहीं। केवल React को पीयर निर्भरता के रूप में आवश्यक है।
विशेषताएं
हेडलेस डिज़ाइन
कोई बिल्ट-इन UI कंपोनेंट नहीं। आपका लुक और फील पर पूर्ण नियंत्रण है। वह अपलोड अनुभव बनाएं जो आप चाहते हैं।
ड्रैग और ड्रॉप
ड्रैग करते समय मान्य और अमान्य फाइल प्रकारों के लिए दृश्य फीडबैक के साथ सहज ड्रैग और ड्रॉप फाइल चयन।
अपलोड प्रगति
व्यक्तिगत फाइलों और समग्र अपलोड प्रगति के लिए रीयल-टाइम प्रगति ट्रैकिंग। सुंदर प्रगति संकेतक बनाएं।
फाइल सत्यापन
फाइल प्रकार, आकार और आयामों के लिए बिल्ट-इन सत्यापन। अपनी विशिष्ट आवश्यकताओं के लिए कस्टम सत्यापन नियम जोड़ें।
क्लाउड स्टोरेज
प्रीसाइन्ड URLs का उपयोग करके S3, Google Cloud Storage, Azure Blob और अधिक में सीधे अपलोड करें। कोई सर्वर प्रॉक्सी की आवश्यकता नहीं।
खंडित अपलोड
विश्वसनीय अपलोड के लिए बड़ी फाइलों को टुकड़ों में विभाजित करें। tus प्रोटोकॉल के साथ पुनः शुरू करने योग्य अपलोड के लिए समर्थन।
छवि प्रसंस्करण
अपलोड से पहले छवियों को संपीड़ित, आकार बदलें और क्रॉप करें। EXIF ओरिएंटेशन समस्याओं को स्वचालित रूप से ठीक करें।
React Native
नेटिव एडाप्टर के साथ React Native में काम करता है। वेब और मोबाइल ऐप्स के लिए समान API।
SSR सुरक्षित
Next.js, Remix और अन्य SSR फ्रेमवर्क के साथ सहज रूप से काम करता है। कोई हाइड्रेशन समस्या नहीं।
त्वरित शुरुआत
1. इंस्टॉल करें
npm install @samithahansaka/dropup
2. उपयोग करें
import { useDropup } from '@samithahansaka/dropup';
function Uploader() {
const { files, actions, getDropProps, getInputProps } = useDropup({
accept: 'image/*',
upload: { url: '/api/upload' },
});
return (
<div {...getDropProps()}>
<input {...getInputProps()} />
<p>Drop files here</p>
{files.map(file => (
<div key={file.id}>
{file.name} - {file.progress}%
</div>
))}
<button onClick={() => actions.upload()}>Upload</button>
</div>
);
}