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

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

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

User avatar
birdkritsna
PHP Super Member
PHP Super Member
Posts: 225
Joined: 16/09/2019 9:57 am

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

Postby birdkritsna » 09/10/2019 3:42 pm

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

Code: Select all

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 189 times


เรียกใช้โดยการสร้างไฟล์ convert.php (มีปุ่มดาวน์โหลดเชื่อมกับไฟล์นี้) มาแปลงเป็นไฟล์ pdf อีกที

Code: Select all

<?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 189 times

อันนี้ข้อมูลในไฟล์ html ที่มีการส่งค่าไปเก็บในโฟลเดอร์ครั้งที่ 2
8.jpg
8.jpg (29.15 KiB) Viewed 189 times

พอกด ดาวน์โหลดไฟล์
9.jpg
9.jpg (12.37 KiB) Viewed 189 times

จะได้ไฟล์ pdf ชื่อใหม่มา แต่ข้อมูลเป็น ข้อมูลของ html ที่มีการอัพโหลดไฟล์ผ่าน cmd ครับ
10.jpg
10.jpg (23.71 KiB) Viewed 189 times


ซึ่งถ้าต้องการไฟล์ข้อมูลไฟล์ html ที่มีการส่งไปในครั้งที่ 2 ต้องทำการอัพโหลดไฟล์ cmd เท่านั้น ถึงจะเรียกข้อมูลมาแปลงเป็นไฟล์ pdf ถูกครับ
เลยอยากทราบวิธีการอัพโหลดไฟล์ html ไปยัง web service โดยผ่านคำสั่ง curl ในภาษา php ครับ

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 21853
Joined: 22/09/2008 6:18 pm
Contact:

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

Postby mindphp » 10/10/2019 6:15 am

กำหนด การส่งค่า curl ของใน php แบบ Post กำหนด parameter ให้เป็นแบบเดียวกับที่ทำในแบบ command
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: viewforum.php?f=29
รับอบรม และพัฒนาระบบ: viewtopic.php?f=6&t=2042

User avatar
birdkritsna
PHP Super Member
PHP Super Member
Posts: 225
Joined: 16/09/2019 9:57 am

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

Postby birdkritsna » 10/10/2019 10:37 am

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



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

Code: Select all

<?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 165 times

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 21853
Joined: 22/09/2008 6:18 pm
Contact:

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

Postby mindphp » 10/10/2019 11:20 am

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

ลองต้นดูในบอร์ดนี้หรือยัง
search.php?keywords=curl_setopt&terms=all&author=&sc=1&sf=all&sr=posts&sk=t&sd=d&st=0&ch=300&t=0&submit=%E0%B8%84%E0%B9%89%E0%B8%99%E0%B8%AB%E0%B8%B2
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: viewforum.php?f=29
รับอบรม และพัฒนาระบบ: viewtopic.php?f=6&t=2042

User avatar
birdkritsna
PHP Super Member
PHP Super Member
Posts: 225
Joined: 16/09/2019 9:57 am

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

Postby birdkritsna » 10/10/2019 12:05 pm

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

ลองต้นดูในบอร์ดนี้หรือยัง
search.php?keywords=curl_setopt&terms=all&author=&sc=1&sf=all&sr=posts&sk=t&sd=d&st=0&ch=300&t=0&submit=%E0%B8%84%E0%B9%89%E0%B8%99%E0%B8%AB%E0%B8%B2


ลองศึกษาแล้วครับ ในบอร์ดยังไม่เห็นมีตัวอย่างการส่งไฟล์ไปตาม url ผมเลยลองปรับใช้ตาม command ดูครับ แต่ผลยังเป็นเหมือนเดิมตามข้างต้นครับ ไม่ทราบว่าถูกผิดตรงไหนครับ

Code: Select all

<?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);

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 21853
Joined: 22/09/2008 6:18 pm
Contact:

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

Postby mindphp » 10/10/2019 1:36 pm

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

ลองต้นดูในบอร์ดนี้หรือยัง
search.php?keywords=curl_setopt&terms=all&author=&sc=1&sf=all&sr=posts&sk=t&sd=d&st=0&ch=300&t=0&submit=%E0%B8%84%E0%B9%89%E0%B8%99%E0%B8%AB%E0%B8%B2


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

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

User avatar
birdkritsna
PHP Super Member
PHP Super Member
Posts: 225
Joined: 16/09/2019 9:57 am

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

Postby birdkritsna » 10/10/2019 2:07 pm

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

ลิงค์ที่ให้ เพื่อให้อ่านและทำความเข้าใจ ก่อน ที่จะนำมาประยุกต์กับงานได้ต้องมีความเข้าใจก่อน
และ ถ้าไม่เข้าใจคำสั่งไหน ตามลิงค์ ที่ให้ ให้ถามมาเป็นบรรทัดๆ ลงในกระทู้เดิมที่เค้าแนะนำไว้


นำมาจากลิงค์นี้ครับ
http://code.iamkate.com/php/sending-files-using-curl/
https://coderwall.com/p/fck2ta/how-to-send-files-via-curl-in-php

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

Code: Select all

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.


Return to “Programming - PHP”

Who is online

Users browsing this forum: MSN [Bot], mstsksmstsks, nasee0010 and 36 guests