GORAGOD.com

freelance, web developer, web designer, hosting, domain name

อยากได้โค้ดอับโหลดแบบ hotmail ครับ

ผมอยากทราบแนวคิดการเขียนโค้ดอับโหลดแบบ hotmail



ที่มันจะอัพโหลดได้หลายๆอันอ่ะครับ



หรือ อ. พอมีโค้ดให้ทดลองใช้มั้ยครับ



ขอบคุณมากๆครับ
09 มี.ค. 2554 7 2,654

Hotmail น่าจะใช้ ActiveX นะครับ ซึ่งเป็น Application ทำงานบน Windows และ IE เท่านั้น



ตัวเลือกที่พอทำได้คือใช้ Flash Upload ครับ ลองดู swfupload ครับ ก็ใช้งานได้ดีทีเดียว
#1

ขอบคุณ อ. มากครับ
#2

จากคำแนะนำของ อ. ตอนนี้ผมใช้ uploadify ครับ

1.แ่ต่ผมให้อยากมันอัพโหลดพร้อมข้อมูลอื่นๆ ในฟอร์ม โดยให้กดปุ่ม submit แค่ครั้งเดียวจะทำอย่างไรครับ โดยไม่ต้องกดปุ่มของ uploadify

2.แล้วผมจะเก็บชื่อไฟล์เ้ข้าฐานข้อมูลในรูปแบบไหนครับ มันจะมีหลายชื่อแล้วจะเก็บในช่องแบบไหนครับ ผมยังไม่ค่อยเข้าใจอ่ะครับ

ขอบคุณ อ.มากครับ



โค้ด add_news.php


<link href="uploadify/css/default.css" rel="stylesheet" type="text/css" />


<link href="uploadify/css/uploadify.css" rel="stylesheet" type="text/css" />


<script type="text/javascript" src="uploadify/scripts/jquery-1.4.2.min.js"></script>


<script type="text/javascript" src="uploadify/scripts/swfobject.js"></script>


<script type="text/javascript" src="uploadify/scripts/jquery.uploadify.v2.1.4.min.js"></script>


<script type="text/javascript">


$(document).ready(function() {


$("#uploadify").uploadify({


'uploader'       : 'uploadify/scripts/uploadify.swf',


'script'         : 'uploadify/scripts/uploadify.php',


'cancelImg'      : 'uploadify/cancel.png',


'folder'         : 'uploadify/uploads',


'queueID'        : 'fileQueue',


'removeCompleted' : false,


'auto'           : true,


'multi'          : true


});


});


</script>



<tr><th></th><th>


<div align="left"><a href="javascript:$('#uploadify').uploadifyUpload();">บันทึกไฟล์เข้าระบบ</a>  |  <a href="javascript:jQuery('#uploadify').uploadifyClearQueue()">ลบไฟล์ทั้งหมด</a></p></div></th>


</tr>


<tr>


  <th></th>


  <th align="left"><div align="left" id="fileQueue"></div>


</th></tr>


 




โค้ด uploadify.php


<?php


if (!empty($_FILES)) {


$tempFile = $_FILES['Filedata']['tmp_name'];


$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';


$nameFile = $_FILES['Filedata']['name'];


$thainame= iconv("UTF-8","tis-620//IGNORE",$nameFile);


$targetFile =  str_replace('//','/',$targetPath) . $thainame;


 


move_uploaded_file($tempFile,$targetFile);


echo "1";


}


?>

#3

เรื่องอัปโหลดไฟล์พร้อมข้อมูลอื่นๆ ไม่มีคำแนะนำครับ ให้ศึกษาเอาจากตัวอย่างของ uploadify ครับ ว่าสามารถทำได้หรือไม่ เท่าที่เคยใช้ swfupload สามารถทำได้ครับ เพราะ swfupload ยองให้มีปุ่ม submit ภายนอกได้ (ของ form) สามารถดูได้จากตัวอย่างของ swfupload ครับ

ส่วนเรื่องการจัดเก็บข้อมูล ผมไม่รู้ concept ของงาน เลยให้คำตอบไม่ถูกเช่นกัน คำแนะนำสำหรับวิธีจัดเก็บคือ จัดเก็บในรูปแบบที่สามารถนำข้อมูลออกมาใช้ได้ง่าย (อาจต้องทดลอง) เช่น


  • เก็บไฟล์อัปโหลดไว้อีกตาราง อ้างถึงกันว่าเป็นไฟล์ของรายการเียวกัน ดัวย upload_id วิธีนี้เหมาะกับการไม่สามารถระบุจำนวนไฟล์ที่อัปโหลดได้


  • เก็บไฟล์อัปโหลด ไว้ใน record เดียวกัน โดยการกำหนดฟิลด์ข้อมูล ตามจำนวนไฟล์ที่อัปโหลดได้ วิธีนี้จะ query ได้ง่ายกว่า แต่จะมีข้อเสียที่จะจัดเก็บไฟล์ได้จำกัด ตาม record ที่เพิ่มไว้




#4


ขอบคุณ อ. ครับ


 


เวบที่เขียนเป็นงานเก็บหนังสือบันทึกข้อความ และเอกสารต่างๆครับ concept จะคล้ายๆเว็บ นสพ. และมีการแทรกไฟล์เข้าไปด้วยครับ


 


แต่ก่อนผมสร้างตารางเก็บหนังสืออย่างละตารางเลยครับ อาทิ หนังสือบันทึกข้อความ 1 ตาราง ข่าวด่วน 1 ตาราง ประมาณนี้ครับ


 


แต่ตอนนี้ผมมองในภาพรวมแล้วทุกอย่างมีข้อมูลเหมือนกันคือ เลขที่หนังสือ วันที่ ชื่อเรื่อง และเนื้อหา ตอนนี้เลยรวมเป็นตาราง news แล้วทำ listbox เลือกประเภทเอกสารแทนเพื่อใช้อ้างอิงเอาครับ


 


ผมเคยถาม อ.เกีี่่ยวกับทำ listbox หลายๆอัน เพื่อเอาไปแยกเป็นหมวดหมุ่ของประเภทเอกสาร คือจะแ่บ่งหมวดหมู่เหมือนตู้เก็บเอกสารอ่ะครับ ตอนนี้ผมใช้ dragon html category ครับ ของคนไทยเขียนเอง คือมันสามารถทำ listbox สร้างโหนดลูกได้ไม่่จำกัดเลยครับ ใช้ไอดีในการอ้างอิง ตรงตามความต้องการครับ


 


ตอนนี้เอาข้อมูลเข้าได้แล้วเหลือไฟล์แนบ ซึ่งยังไม่ค่อยเข้าใจ 


 


ตอนบันทึกไฟล์แนบก็เข้าตาราง upload มี id  name_master(ชื่อไฟล์ต้นฉบับ) name_db(เปลี่ยนชื่อไฟล์ก่อนจัดเก็บจริง โดยเป็นการใช้ id+1 เพิ่มขึ้นเรื่อยๆ) folder(เพื่อแยกไฟล์แต่ละเอกสาร ชื่อเดียวกับ id ของตาราง news) news_id(ใช้อ้างอิงว่าไฟล์นี้เป็นของข่าวไหน)


 


ส่วนเนื้อหาก็เข้าตาราง news


 


ผมคิดอย่างนี้ถูกปะครับ


 


ผมก็ต้องเขียนพอกด submit แล้วให้บันทึกข้อมูลเข้าตาราง news ต่อมาก็โหลดไฟล์เข้าตาราง upload แล้วก็เก็บเอา id ของตาราง news มาใส่ไว้ด้วย ถูกปะครับ


 


คิดไปคิดมางง


 


รบกวน อ. ชี้แนวทางด้วยครับ


 


ขอบคุณครับ

#5


ในทางปฏิบัติผมก็แนะนำให้ใช้วิธีนี้แหละครับ เหตุผลเดียวคือ มันจะออกแบบง่ายกว่า

 




  • กรอกข้อมูลอื่นๆให้เรีบร้อยก่อน ในขั้นตอนแรก เพื่อสร้าง id ของ หนังสือ โดยใช้ตารางตาสรางหนึ่ง


  • ขั้นตอนที่ 2 ให้ทำการอัปโหลดไฟล์ ซึ่งสามารถอัปโหลดได้ไม่จำกัด หากแยก ตารางของไฟล์ไว้อีกตารางหนึ่ง โดยอ้างถึงข้อมูลเอกสารด้วย id (สามารถใช้ id ประกอบลงในชื่อไฟล์ที่อัปโหลดได้ เพื่อให้การค้นหาไฟล์ที่เกี่ยวข้องทำได้ง่ายขึ้น)




สรุปให้เข้าใจง่ายๆ คือ ที่คิดก็ถูกต้องแล้ครับ
#6

ขอบคุณ อ.มากๆครับ ที่ให้ความมั่นใจว่ามาถูกทางแล้ว 



ขอบคุณอีกครั้งครับ
#7
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M
^