この記事では、curl に基づいて PHP7 で実装された画像アップロード機能を主に紹介し、php5.5 以前と php7 の関連する実装と使用スキルをサンプルの形式で比較および分析します。参照してください
この記事の例では、curl をベースに PHP7 で実装された画像アップロード機能について説明します。参考までに皆さんと共有してください。詳細は次のとおりです。
php のバージョンによって、curl シミュレーション フォームのアップロード方法が異なります
php5.5 より前
$curl = curl_init(); if (defined('CURLOPT_SAFE_UPLOAD')) { curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false); } $data = array('file' => '@' . realpath($path));//‘@' 符号告诉服务器为上传资源 curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, 1 ); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_USERAGENT,"TEST"); $result = curl_exec($curl); $error = curl_error($curl);
php5.5 以降は、php7
$curl = curl_init(); curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true); $data = array('file' => new \CURLFile(realpath($path))); url_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, 1 ); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_USERAGENT,"TEST"); $result = curl_exec($curl); $error = curl_error($curl);に移動します。
以下は互換性のあるメソッドを提供します:
$curl = curl_init(); if (class_exists('\CURLFile')) { curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true); $data = array('file' => new \CURLFile(realpath($path)));//>=5.5 } else { if (defined('CURLOPT_SAFE_UPLOAD')) { curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false); } $data = array('file' => '@' . realpath($path));//<=5.5 } curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, 1 ); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_USERAGENT,"TEST"); $result = curl_exec($curl); $error = curl_error($curl);
その中に:
$path: はアドレスですアップロードする画像の
#$url: ターゲット サーバー アドレス
例:
$url="http://localhost/upload.php"; $path = "/bg_right.jpg"
upload.php の例:
<?php file_put_contents(time().".json", json_encode($_FILES)); $tmp_name = $_FILES['file']['tmp_name']; $name = $_FILES['file']['name']; move_uploaded_file($tmp_name,'audit/'.$name); ?>
PHP5.0 ~5.6 各バージョンの互換性 cURL ファイルアップロード関数例解析 php Tips
Example php5、php7対応のcURLファイルアップロード機能の解析 php Skill
以上がPHP7 CURL に基づいて画像をアップロードするための PHP スキルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。