Saya membutuhkan form dengan empat buah komponen JQuery untuk mengupload file ke website saya. Keempat komponen ini nantinya akan saya integrasikan dengan PHP.
- Komponen untuk mengupload satu file.
- Komponen untuk mengupload beberapa file sekaligus.
- Komponen untuk mengupload satu image.
- Komponen untuk mengupload beberapa image sekaligus.
PERHATIAN:
Project ini sangat specific dan detail. Saya mencari orang yang berpengalaman. Harga bisa nego asal kualitas juga OK. Dan saya orang yang tahu dengan kualitas dan menguasai detail-detail ini. You cannot hide. Tapi project ini sangat fun dan menantang untuk orang yang sudah memiliki skill dan pengalaman yang memadai.
Specifications:
- Semua komponen ini TIDAK menggunakan FLASH.
- Diutamakan menggunakan JQuery. Tapi framework lain boleh asal nggak konflik dengan JQuery.
- Komponen mempunyai progress bar yg diupdate secara berkala selama proses upload.
- Komponen untuk upload image ada preview thumbnailnya.
- Komponen untuk upload image hanya membolehkan user memilih file-file image saja.
- Komponen bisa diset Maximum Size dan Maximum File Count.
- Komponen TIDAK langsung mengupload secara otomatis setelah user memilih file, melainkan setelah user mengklik tombol Submit pada form.
- Selama proses uploading, form tidak dapat diubah-ubah, dan ada progress bar. Gunakan overlay.
- Ada tombol Cancel ketika proses upload berlangsung (form submit).
- Di server-side ada file PHP yang memproses file dan menyimpannya di server menggunakan nama penyimpanan (misalnya USERID-YmdHns.ext).
- Di server-side, jika file berhasil, datanya (nama original file, size, nama file penyimpanan) disimpan sebagai JSON string, sehingga hanya membutuhkan satu field untuk setiap komponen. Termasuk komponen yg multiple file, juga menyimpan datanya dalam JSON string, satu field saja.
- JSON string bisa dimunculkan kembali oleh komponen sebagai initial value. Ini akan digunakan untuk proses EDIT.
- Script PHP di server side harus sudah meng-handle mana file yg harus dihapus di server. Misalkan user mengupload satu file. Setelah sukses, kemudian mengedit, dan menggantinya dengan file lain. Maka script PHP yang meng-handle upload harus mampu menentukan file lama yg harus dihapus di sisi server. Ini mungkin akan sedikit rumit pada komponen yg multiple files. Hint: gunakan input hidden untuk menyimpan JSON string lama.
- Semua script server-side dan client-side mempunyai fungsi validasi (file type, size, max file count) dan menampilkan error dengan benar.
- Jika ada kesalahan di sisi server, form yang sama ditampilkan lagi, lengkap dengan file-file yg telah dipilih oleh user.
- Komponen harus self-contained, aman digunakan sebagai beberapa field dalam satu form, dan aman pula digunakan di beberapa form dalam satu page.
- Jika memerlukan styling, gunakan Bootstrap atau plain CSS.
- Please, jangan bawa whole framework atau sub project atau giant libraries untuk project ini. Usahakan hanya beberapa file saja.
- Think about reusability. Saya inginkan saya dapat menggunakan komponen-komponen ini menggunakan one liner function, seperti: render_single_upload($id, $old_value, $max_size);
Deliverables:
- File HTML atau PHP berisi contoh form.
- File PHP untuk menghandle upload di server-side.
- File JavaScript, CSS dan file lain yang dibutuhkan.