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 тощо. Він також підтримує завантаження на основі форми, проксі, файли cookie, ім'я користувача та пароль.

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

Остання стаття