Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,038

HOME > PHP > PHP Forum > รบกวนช่วย>>> ใช้ php กับไลน์บอทเก็บรูปภาพ แต่บอทเก็บภาพไม่ครบ


[PHP] รบกวนช่วย>>> ใช้ php กับไลน์บอทเก็บรูปภาพ แต่บอทเก็บภาพไม่ครบ

 
Topic : 133593



โพสกระทู้ ( 3 )
บทความ ( 0 )



สถานะออฟไลน์



ส่ง 1-2 รูป บอทสามารถเซฟรูปทัน แต่พอส่ง 3 รูปขึ้นไป บอทเซฟไม่ทัน

ทดลองเองแล้วจากตัวอย่างด้านล่างก็ยังไม่ได้เหมือนเดิม จนปัญญาแล้วครับ รบกวนช่วยทีครับ


33333


Code (PHP)
01.// ถ้าเป้น Message Event
02.    if(!is_null($eventMessage)){
03.        $typeMessage = $eventObj->getMessageType();  
04.        // เก็บค่า id ของข้อความ
05.        $idMessage = $eventObj->getMessageId();         
06.        //  image
07.        if($typeMessage=='image'){
08.                $responseMedia = $bot->getMessageContent($idMessage);
09.            if ($responseMedia->isSucceeded()) {
10.                $dataBinary = $responseMedia->getRawBody(); // return binary
11.                $fileType = $responseMedia->getHeader('Content-Type');   
12.                if (preg_match('/image/',$fileType)) {                             
13.                        list($fileType,$ext) = explode("/",$fileType);
14.                        $ext = ($ext=='jpeg' || $ext=='jpg')?"jpg":$ext;
15.                        $fileNameSave = time().".".$ext;                   
16.                }
17.                  
18.                  
19.                $botDataFolder = 'LAMSAM /'; // โฟลเดอร์หลักที่จะบันทึกไฟล์
20.                $botDataUserFolder = $botDataFolder.$sourceType.'-'.$sourceId;
21.                if(!file_exists($botDataUserFolder)) { // ตรวจสอบ
22.                    mkdir($botDataUserFolder, 0777, true);
23.                }  
24.                // กำหนด path ของไฟล์ที่จะบันทึก
25.                $fileFullSavePath = $botDataUserFolder.'/'.$fileNameSave;
26.                file_put_contents($fileFullSavePath,$dataBinary);
27.                // Directory
28.                //$directory = "/botData/$botDataUserFolder";
29.                // Returns array of files
30.                $files = scandir($botDataUserFolder);
31.                // Count number of files and store them to variable..
32.                $num_files = count($files)-2;
33.                $textReplyMessage = "รวม= $num_files แผ่น";
34.                $replyData = new TextMessageBuilder($textReplyMessage);
35.                 
36.                //$failMessage = json_encode($fileType);             
37.                //$failMessage = json_encode($responseMedia->getHeaders());
38.                //$replyData = new TextMessageBuilder($failMessage);                     
39.            }else{
40.                $failMessage = json_encode($idMessage.' '.$responseMedia->getHTTPStatus() . ' ' .$responseMedia->getRawBody());
41.               $replyData = new TextMessageBuilder($failMessage);         
42.            }


ทดลองวนloop มั่วๆเองดู แต่ไม่ได้ครับ

Code (PHP)
01.// ถ้าเป็น image
02.        if($typeMessage=='image'){ 
03.                for ($i = 0; $i < count($typeMessage); ++$i){   
04.                $responseMedia[$i] = $bot->getMessageContent($idMessage);
05.            if ($responseMedia[$i]->isSucceeded()) {
06.                 
07.                // คำสั่ง getRawBody() ในกรณีนี้ จะได้ข้อมูลส่งกลับมาเป็น binary
08.                // เราสามารถเอาข้อมูลไปบันทึกเป็นไฟล์ได้
09.                $dataBinary[$i] = $responseMedia[$i]->getRawBody(); // return binary
10.                // ดึงข้อมูลประเภทของไฟล์ จาก header
11.                $fileType[$i] = $responseMedia[$i]->getHeader('Content-Type');   
12.                if (preg_match('/image/',$fileType[$i])) {         
13.                     
14.                        list($fileType[$i],$ext) = explode("/",$fileType[$i]);
15.                        $ext = ($ext=='jpeg' || $ext=='jpg')?"jpg":$ext;
16.                        $fileNameSave[$i] = time().".".$ext;
17.                      
18.                }
19.                  
20.                  
21.                $botDataFolder = 'LAMSAM PAPER/'; // โฟลเดอร์หลักที่จะบันทึกไฟล์
22.                $botDataUserFolder = $botDataFolder.$sourceType.'-'.$sourceId;// มีโฟลเดอร์ด้านในเป็น sourceId อีกขั้น
23.                if(!file_exists($botDataUserFolder)) { // ตรวจสอบถ้ายังไม่มีให้สร้างโฟลเดอร์ sourceId
24.                    mkdir($botDataUserFolder, 0777, true);
25.                }  
26.                // กำหนด path ของไฟล์ที่จะบันทึก
27.                $fileFullSavePath = $botDataUserFolder.'/'.$fileNameSave[$i];
28.                file_put_contents($fileFullSavePath,$dataBinary[$i]);




Tag : PHP, MySQL, Node.js



ประวัติการแก้ไข
2019-05-14 20:13:48
2019-05-14 20:18:14
2019-05-14 20:22:14
2019-05-14 20:23:32
2019-05-14 20:24:20
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2019-05-14 20:11:51 By : pwbank View : 1856 Reply : 1
 

 

No. 1



โพสกระทู้ ( 74,059 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ปัญหาน่าจะเกิด Save ยังไม่เสร็จ แต่มีรูปใหม่ขึ้นมา เลยทำให้ Process ทำงานไม่สำเร็จครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-22 18:09:24 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนช่วย>>> ใช้ php กับไลน์บอทเก็บรูปภาพ แต่บอทเก็บภาพไม่ครบ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่