EverKB

Knowledge Base Ever

วิธีใช้ cURL เพื่ออัปโหลดไฟล์ใน PHP

2019-11-18 23:43:46

แท็ก: PHP, PHP5.5, cURL, CURLOPT_POSTFIELDS, File Upload, CURLFille, PHP อัพโหลดไฟล์

PHP ใช้ไลบรารี libcurl ที่สร้างโดย Daniel Stenberg เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ต่าง ๆ โปรโตคอลที่รองรับคือ http、https、ftp、gopher、telnet、dict、file、ldap Libcurl ยังรองรับใบรับรอง HTTPS, POST, PUT, FTP และอื่น ๆ นอกจากนี้ยังรองรับการอัพโหลดแบบฟอร์มพร็อกซีคุกกี้คุกกี้ชื่อผู้ใช้และการตรวจสอบรหัสผ่าน

PHP ใช้ไลบรารี cURL เพื่อเริ่มต้นคำขอ HTTP เหล่านี้ cURL ขึ้นอยู่กับ libcurl7.10.5 หรือสูงกว่า

ใน PHP 5.4 หรือเก่ากว่าการห่อหุ้มของไฟล์อัพโหลด cURL นั้นเป็นขั้นตอน:

$ch = curl_init();
$data = array('name' => 'File1', 'file' => '@/path/to/file.png');
curl_setopt($ch, CURLOPT_URL, 'https://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);

ใน PHP 5.5 หรือใหม่กว่าการห่อหุ้มของไฟล์อัพโหลด cURL นั้นได้รับการอัพเดตเป็นคลาส CURLFille:

$ch = curl_init();
$data = array('name' => 'File1', 'file' => new CURLFille('/path/to/file.png'));
curl_setopt($ch, CURLOPT_URL, 'https://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);

แท็ก

CentOS7 CentOS PHP Linux Python3 Python MySQL MariaDB YUM JavaScript caching_sha2_password HTML mysql_native_password PHP7 CSS Redis MySQL8 daemon HTTP particles.js Slim Vincent Garreau Failed to build these modules: _uuid MongoDB Sudo DATE_ADD ip command pg_bha.conf SQL Server width Compiling Apache Frameworks MySQL-python scrollbar Tcp BBR Apache2.4 Elasticsearch libpython3.7m.so.1.0 PHPStorm ss5-3.8.9 CURLOPT_POSTFIELDS NodeJs show VIM Bluetooth Failed to build these modules: _ctypes Minimal ISO substr date sub INTERVAL PECL SQL Date Funcitons Wi-Fi CodeIgniter font-size root Tag Cloud apache httpd dual network interfaces Laravel ss5 CURLFille horiz-align node.js ShadowsocksR vertical-align BarManager exec mb_substr PyCharm SUBDATE date add IntelliJIDEA PEAR SOCKS5 Proxy Server WebStorm Chrome find remi Tag Apache du jQuery PHP5.5 src cURL hide nginx Shadowsocks-Python V2Ray availability eth0 MariaDB10.4 PostgreSQL sub folder date Install MongoDB pdo_sqlsrv SOCKS5 Web Server File Upload mssql-tools register_shutdown_function Symfony ADDDATE DevExpress JetBrain php-fpm sqlsrv Zend Framework height network interface Shadowsocks-Libev unixODBC-devel Aura error_get_last Port 80 string data INDENTIFIED BY password policy requirements SOCKS Web Development Fedora Media Writer msodbcsql Redis5 SVN absolute Deepin jemalloc SQLAlchemy convert FuelPHP mysqlclient Shadowsocks toggle at-symbol Error Control Operator margin PHPUnit Framework ss5.passwd daemon process IIS password SOCKET vps center Fatal Errors MongoDB4 sudoers .htaccess DATE_SUB Phalcon SQL Server 2017 WiFi Compiling PHP frequency conflict set_error_handler TestCase apr Elasticsearch7.3 PHPUnit ss5.conf

บทความล่าสุด