Q - สอบถามวิธี Upload file html ไปยัง web service โดยใช้คำสั่ง curl ใน PHP

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
birdkritsna
PHP Super Member
PHP Super Member
โพสต์: 234
ลงทะเบียนเมื่อ: 16/09/2019 9:57 am

Q - สอบถามวิธี Upload file html ไปยัง web service โดยใช้คำสั่ง curl ใน PHP

โพสต์ที่ยังไม่ได้อ่าน โดย birdkritsna »

คือตอนนี้ผมกำลังทำการอัพโหลดไฟล์ไปยัง web service ตัวหนึ่ง แต่รันผ่าน cmd ซึ่งไฟล์ก็สามารถอัพโหลดไฟล์ html และเรียกใช้ได้แล้วครับ

โค้ด: เลือกทั้งหมด

curl -u user:pass -i -X POST -F fileupload=@[ตำแหน่งไฟล์ ]filehtml.html -F typefile=1 [Host web service]/upload
5.jpg
5.jpg (74.35 KiB) Viewed 1209 times
เรียกใช้โดยการสร้างไฟล์ convert.php (มีปุ่มดาวน์โหลดเชื่อมกับไฟล์นี้) มาแปลงเป็นไฟล์ pdf อีกที

โค้ด: เลือกทั้งหมด

<?php
$url = 'ตำแหน่งไฟล์ .html';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'Host web service/view/1/' . $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "user:pass");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
 //Save file
$output = curl_exec($ch);
header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename=result.pdf");
//file_put_contents('./file/filehtml.pdf');
echo $output;
exit();
แต่ปัญหาคือ เวลาที่มีการอัพโหลดไฟล์ html อันใหม่ พอเรียกข้อมูลที่มีการแปลงไฟล์เป็น pdf จะได้เป็นไฟล์ของตัวโค๊ด html ที่มีการอัพโหลดไฟล์ผ่าน cmd มาครับ
ผลลัพธ์ของไฟล์ pdf ที่อัพโหลดผ่าน cmd ครับ
7.jpg
7.jpg (20.2 KiB) Viewed 1209 times
อันนี้ข้อมูลในไฟล์ html ที่มีการส่งค่าไปเก็บในโฟลเดอร์ครั้งที่ 2
8.jpg
8.jpg (29.15 KiB) Viewed 1209 times
พอกด ดาวน์โหลดไฟล์
9.jpg
9.jpg (12.37 KiB) Viewed 1209 times
จะได้ไฟล์ pdf ชื่อใหม่มา แต่ข้อมูลเป็น ข้อมูลของ html ที่มีการอัพโหลดไฟล์ผ่าน cmd ครับ
10.jpg
10.jpg (23.71 KiB) Viewed 1209 times
ซึ่งถ้าต้องการไฟล์ข้อมูลไฟล์ html ที่มีการส่งไปในครั้งที่ 2 ต้องทำการอัพโหลดไฟล์ cmd เท่านั้น ถึงจะเรียกข้อมูลมาแปลงเป็นไฟล์ pdf ถูกครับ
เลยอยากทราบวิธีการอัพโหลดไฟล์ html ไปยัง web service โดยผ่านคำสั่ง curl ในภาษา php ครับ
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41131
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: Q - สอบถามวิธี Upload file html ไปยัง web service โดยใช้คำสั่ง curl ใน PHP

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

กำหนด การส่งค่า curl ของใน php แบบ Post กำหนด parameter ให้เป็นแบบเดียวกับที่ทำในแบบ command
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
birdkritsna
PHP Super Member
PHP Super Member
โพสต์: 234
ลงทะเบียนเมื่อ: 16/09/2019 9:57 am

Re: Q - สอบถามวิธี Upload file html ไปยัง web service โดยใช้คำสั่ง curl ใน PHP

โพสต์ที่ยังไม่ได้อ่าน โดย birdkritsna »

mindphp เขียน:กำหนด การส่งค่า curl ของใน php แบบ Post กำหนด parameter ให้เป็นแบบเดียวกับที่ทำในแบบ command

ขอบคุณครับผม
ผมลองศึกษาแล้วนำมาปรับใช้ดูแล้ว ขึ้นหน้าจอ Error ครับ

โค้ด: เลือกทั้งหมด

<?php
include 'connect.php';
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, '[Host Webservice]/');
curl_setopt($ch, CURLOPT_USERPWD, "user:pass");
curl_setopt($ch, CURLOPT_POST, true);
   curl_setopt(
    $ch, CURLOPT_POSTFIELDS, array(
      'fileupload' => '@' . realpath('path ไฟล์ html')
    ));

$output = curl_exec($ch);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
echo $output;

curl_close($ch);

(แก้ไข url : user : pass)

ผลลัพธ์ครับ
2019-10-10_10-34-00.jpg
2019-10-10_10-34-00.jpg (21.22 KiB) Viewed 1185 times
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41131
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: Q - สอบถามวิธี Upload file html ไปยัง web service โดยใช้คำสั่ง curl ใน PHP

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

เอาโค้ดตัวอย่างมาจากไหน

ลองต้นดูในบอร์ดนี้หรือยัง
search.php?keywords=curl_setopt&terms=a ... B%E0%B8%B2
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
birdkritsna
PHP Super Member
PHP Super Member
โพสต์: 234
ลงทะเบียนเมื่อ: 16/09/2019 9:57 am

Re: Q - สอบถามวิธี Upload file html ไปยัง web service โดยใช้คำสั่ง curl ใน PHP

โพสต์ที่ยังไม่ได้อ่าน โดย birdkritsna »

mindphp เขียน:เอาโค้ดตัวอย่างมาจากไหน

ลองต้นดูในบอร์ดนี้หรือยัง
search.php?keywords=curl_setopt&terms=a ... B%E0%B8%B2
ลองศึกษาแล้วครับ ในบอร์ดยังไม่เห็นมีตัวอย่างการส่งไฟล์ไปตาม url ผมเลยลองปรับใช้ตาม command ดูครับ แต่ผลยังเป็นเหมือนเดิมตามข้างต้นครับ ไม่ทราบว่าถูกผิดตรงไหนครับ

โค้ด: เลือกทั้งหมด

<?php
include 'connect.php';
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, '[host web]');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "user:pass");
curl_setopt($ch, CURLOPT_POST, true);

$postData = array(
    'fileupload' => '@D:/xampp/htdocs/joomla_testing/tools/tools_pdf_converter/file/filehtml.html',
    'typefile' => '1'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

// output the response
$output = curl_exec($ch);
echo $output;

// close the session
curl_close($ch);
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41131
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: Q - สอบถามวิธี Upload file html ไปยัง web service โดยใช้คำสั่ง curl ใน PHP

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

mindphp เขียน:เอาโค้ดตัวอย่างมาจากไหน

ลองต้นดูในบอร์ดนี้หรือยัง
search.php?keywords=curl_setopt&terms=a ... B%E0%B8%B2
เอาโค้ดตัวอย่างมาจากไหน
เข้าใจ แต่ละบรรทัดในคำสั่ง หรือเปล่า

ลิงค์ที่ให้ เพื่อให้อ่านและทำความเข้าใจ ก่อน ที่จะนำมาประยุกต์กับงานได้ต้องมีความเข้าใจก่อน
และ ถ้าไม่เข้าใจคำสั่งไหน ตามลิงค์ ที่ให้ ให้ถามมาเป็นบรรทัดๆ ลงในกระทู้เดิมที่เค้าแนะนำไว้
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
birdkritsna
PHP Super Member
PHP Super Member
โพสต์: 234
ลงทะเบียนเมื่อ: 16/09/2019 9:57 am

Re: Q - สอบถามวิธี Upload file html ไปยัง web service โดยใช้คำสั่ง curl ใน PHP

โพสต์ที่ยังไม่ได้อ่าน โดย birdkritsna »

mindphp เขียน:
เอาโค้ดตัวอย่างมาจากไหน
เข้าใจ แต่ละบรรทัดในคำสั่ง หรือเปล่า

ลิงค์ที่ให้ เพื่อให้อ่านและทำความเข้าใจ ก่อน ที่จะนำมาประยุกต์กับงานได้ต้องมีความเข้าใจก่อน
และ ถ้าไม่เข้าใจคำสั่งไหน ตามลิงค์ ที่ให้ ให้ถามมาเป็นบรรทัดๆ ลงในกระทู้เดิมที่เค้าแนะนำไว้
นำมาจากลิงค์นี้ครับ
http://code.iamkate.com/php/sending-files-using-curl/
https://coderwall.com/p/fck2ta/how-to-send-files-via-curl-in-php

ส่วนคำสั่งการส่งค่าไปยังเว็บนี่ ใช้แบบนี้ถูกไหมครับ

โค้ด: เลือกทั้งหมด

curl_setopt($ch, CURLOPT_URL, '[host service]');
เพราะผมลองส่งค่าไปยัง host หนึ่งแล้วขึ้นว่า
Not Found
The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: Google [Bot] และบุคลทั่วไป 55