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

Post a reply

Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

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

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

by 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.

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

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

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

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

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

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

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

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

ลองต้นดูในบอร์ดนี้หรือยัง
search.php?keywords=curl_setopt&terms=a ... B%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);

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

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

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

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

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

by 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 672 times

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

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

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

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

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

Top