php curlを使ってブラウザのフォームをシミュレーションしてファイルまたは画像をアップロードする方法
1956 ワード
前言
ブラウザで使用しているhtmlのinputボックスはファイルのアップロードを実現できます。フォーム要素は
php curlシミュレーションを使ってファイルをアップロードします。
curlがファイルをアップロードする時、最も重要なのは「@」符号の応用であり、@マークのcurlを加えるとファイルアップロード処理と見なされます。
具体的なコードの例:
ブラウザで使用しているhtmlのinputボックスはファイルのアップロードを実現できます。フォーム要素は
<body>
<form action="UploadFile.php" method="post" enctype="multipart/form-data">
<input type="file" name="fileUpload" />
<input type="submit" value=" " />
</form>
</body>
いつもいくつかの時、私達はバックグランドで直接ファイルをアップロードします。ブラウザでフロントエンドでアップロードするのではなくて、この時phpのcurlはいくつかのパラメータを提供しました。直接にphpバックグラウンドでファイルをアップロードすることができます。php curlシミュレーションを使ってファイルをアップロードします。
curlがファイルをアップロードする時、最も重要なのは「@」符号の応用であり、@マークのcurlを加えるとファイルアップロード処理と見なされます。
具体的なコードの例:
<?php
header('Content-type:text/html; charset=utf-8'); //
$ch = curl_init();
$url = 'https://xxx.com/api/mobile/auto_upload.php?uid=9705459';
//post , @ ,curl
$curlPost = array('Filedata'=>'@/Users/finup/Documents/11.png');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1); //POST
curl_setopt($ch, CURLOPT_POSTFIELDS,$curlPost);
$data =curl_exec($ch);
curl_close($ch);
echo '<pre>';
var_dump($data);
上記のコード例のurlはファイルアップロードを処理するための具体的なインターフェースであり、直接$uを使用することができます。FILESはアップロードされた一時ファイルに関する情報を取得して$uを印刷します。FILESは、配列のキー「Filedata」名をパラメータを渡す時に自分で指定することができます。
Array
(
[Filedata] => Array
(
[name] => 11.png
[type] => application/octet-stream
[tmp_name] => /private/var/tmp/php936cex
[error] => 0
[size] => 36663
)
)
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。