สำหรับการพัฒนาเว็บไซต์ที่ต้องยุ่งเกี่ยวกับการอัพโหลดไฟล์เอกสาร ไฟล์รูปภาพแล้วก็คงจะพอหาแหล่งข้อมูลได้ทั่วไป แต่ก็ล้วนแล้วจะต้องมาปรับแต่งโค๊ดเพื่อกรองข้อมูลไฟล์ก่อนจะเข้าไปถึงขั้นตอนการทึกข้อมูลเข้าระบบ โดยต้องให้ความสำคัญกับเรื่องเหล่านี้เสมอ
- ขนาดไฟล์ที่อนุญาตในการอัพโหลด
- ประเภทไฟล์ที่อนุญาตในการอัพโหลด
- การอัพโหลดไฟล์แบบไฟล์เดียว และหลายไฟล์
- จำนวนไฟล์สูงสุดที่อนุญาตให้อัพโหลดได้ในแต่ละครั้ง
- ที่คำคัญเลยคือก่อนการที่เราจะบันทึกการอัพโหลด จะให้ review รูปภาพก่อนจะทำได้อย่างไร
- อื่น ๆ
ปัจจุบันนี้ Javascript ทำได้เกือบทุกอย่างจริง ๆ ทำให้เรื่องการอัพโหลดไฟล์เป็นงานง่ายไปเลย
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Dropzone Poolsawat</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/dropzone/4.3.0/dropzone.css"> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/4.3.0/dropzone.js"></script> <script type="text/javascript"> var myDropzone = {}; Dropzone.options.myAwesomeDropzone = { url : 'xxxxxx', paramName : "fileOther", // ชื่อไฟล์ปลายทางเมื่อ upload แบบ mutiple จะเป็น array autoProcessQueue : false,// ใส่เพื่อไม่ให้อัพโหลดทันที หลังจากเลือกไฟล์ uploadMultiple : true, // อัพโหลดไฟล์หลายไฟล์ parallelUploads : 10, // ให้ทำงานพร้อมกัน 10 ไฟล์ maxFiles : 5, // ไฟล์สูงสุด 5 ไฟล์ addRemoveLinks : true, // อนุญาตให้ลบไฟล์ก่อนการอัพโหลด maxFilesize: 2, // MB previewsContainer : ".dropzone", // ระบุ element เป้าหลาย dictRemoveFile : "Remove", // ชื่อ ปุ่ม remove dictCancelUpload : "Cancel", // ชื่อ ปุ่ม ยกเลิก dictDefaultMessage : "เลือกรูปภาพ", // ข้อความบนพื้นที่แสดงรูปจะแสดงหลังจากโหลดเพจเสร็จ dictFileTooBig : "ไม่อนุญาตให้อัพโหลดไฟล์เกิน 2 MB", //ข้อความแสดงเมื่อเลือกไฟล์ขนาดเกินที่กำหนด acceptedFiles : "image/*", // อนุญาตให้เลือกไฟล์ประเภทรูปภาพได้ // The setting up of the dropzone init : function() { myDropzone = this; /*this.on("addedfile", function(file) { }).on("removedfile", function(file) { }).on("thumbnail", function(file) { }).on("error", function(file) { }).on("processing", function(file) { }).on("uploadprogress", function(file) { });*/ } } $(document).ready(function(){ $('#btnUpload').on('click',function(){ myDropzone.processQueue(); }); }); </script> </head> <body> <div class="dropzone" id="my-awesome-dropzone" style="font-size: 1.5em;"> <h3 class="dropzone-previews ui"></h3> <div class="fallback"> <input name="file" type="file" multiple class="form-control" accept="image/jpg" /> </div> </div> <button type="button" id="btnUpload">อัพโหลดไฟล์</button> </body> </html>
ก็เลยอยากเอาตัวอย่างโค๊ดการอัพโหลดไฟล์มาแบ่งปันกัน