หน้า 1 จากทั้งหมด 1

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

โพสต์แล้ว: 09/10/2019 3:42 pm
โดย 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 1240 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 1240 times
อันนี้ข้อมูลในไฟล์ html ที่มีการส่งค่าไปเก็บในโฟลเดอร์ครั้งที่ 2
8.jpg
8.jpg (29.15 KiB) Viewed 1240 times
พอกด ดาวน์โหลดไฟล์
9.jpg
9.jpg (12.37 KiB) Viewed 1240 times
จะได้ไฟล์ pdf ชื่อใหม่มา แต่ข้อมูลเป็น ข้อมูลของ html ที่มีการอัพโหลดไฟล์ผ่าน cmd ครับ
10.jpg
10.jpg (23.71 KiB) Viewed 1240 times
ซึ่งถ้าต้องการไฟล์ข้อมูลไฟล์ html ที่มีการส่งไปในครั้งที่ 2 ต้องทำการอัพโหลดไฟล์ cmd เท่านั้น ถึงจะเรียกข้อมูลมาแปลงเป็นไฟล์ pdf ถูกครับ
เลยอยากทราบวิธีการอัพโหลดไฟล์ html ไปยัง web service โดยผ่านคำสั่ง curl ในภาษา php ครับ

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

โพสต์แล้ว: 10/10/2019 6:15 am
โดย mindphp
กำหนด การส่งค่า curl ของใน php แบบ Post กำหนด parameter ให้เป็นแบบเดียวกับที่ทำในแบบ command

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

โพสต์แล้ว: 10/10/2019 10:37 am
โดย 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 1216 times

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

โพสต์แล้ว: 10/10/2019 11:20 am
โดย mindphp
เอาโค้ดตัวอย่างมาจากไหน

ลองต้นดูในบอร์ดนี้หรือยัง
search.php?keywords=curl_setopt&terms=a ... B%E0%B8%B2

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

โพสต์แล้ว: 10/10/2019 12:05 pm
โดย 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);

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

โพสต์แล้ว: 10/10/2019 1:36 pm
โดย mindphp
mindphp เขียน:เอาโค้ดตัวอย่างมาจากไหน

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

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

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

โพสต์แล้ว: 10/10/2019 2:07 pm
โดย 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.