EverKB

Knowledge Base Ever

Jak používat CURL k nahrávání souborů v PHP

2019-11-18 23:43:46

Štítek: PHP, PHP5.5, cURL, CURLOPT_POSTFIELDS, File Upload, CURLFille, Nahrát soubor PHP

PHP používá knihovnu libcurl vytvořenou Daniel Stenberg pro připojení k různým serverům. Protokoly, které podporuje, jsou http、https、ftp、gopher、telnet、dict、file、ldap. Libcurl také podporuje certifikáty HTTPS, POST, PUT, FTP atd. Podporuje také odesílání pomocí formulářů, proxy, cookies, ověřování uživatelského jména a hesla.

PHP používá k vyvolání těchto požadavků HTTP knihovnu cURL. CURL závisí na libcurl7.10.5 nebo vyšší.

V PHP 5.4 nebo dřívějším je zapouzdření souborů pro upload CURL procedurální:

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

V PHP 5.5 nebo novějším se zapouzdření souboru pro upload CURL aktualizuje na třídu 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);

Štítek

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