1

さて、curlを使用して、マシンからではなくサイトディレクトリから画像をアップロードできるかどうか疑問に思っていました。正確に行う必要があるのは、ファイルを使用して画像ディレクトリから画像をアップロードすることです。フォームで選択してください。コードで何を編集する必要があるかを知っています。感謝します。ウェブを調べましたが、検索で何も見つかりませんでした。ファイルにコンテンツbase64エンコードを取得してから、投稿する必要があると考えていました。

$upload_url = 'http://example.com/settings/upload-img';
$file_path = 'directory/image.png';
$fields = array(
   "MAX_FILE_SIZE" => "",
   "fileselect[]" => $file_path
);

foreach ($fields as $key => $val) {
   $post_data .= $key . '=' . $val . '&';
}

$chr = curl_init();
curl_setopt($chr, CURLOPT_URL, $upload_url);
curl_setopt($chr,CURLOPT_POST, count($fields));
curl_setopt($chr,CURLOPT_POSTFIELDS, rtrim($post_data, '&'));
curl_setopt($chr, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($chr);
curl_close($chr);

base64_encode()へのイメージについて私が念頭に置いていたのは以下のとおりです。これが機能する可能性があると私が正しく考えているかどうかはわかりません。

$raw_img = base64_encode(file_get_contents('directory/image.png'));

次に、「fileselect[]」=>$raw_imgを使用します

4

1 に答える 1

0
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)");
curl_setopt($ch, CURLOPT_URL, _VIRUS_SCAN_URL);
curl_setopt($ch, CURLOPT_POST, true);
// same as <input type="file" name="file_box">
$post = array(
    "file_box"=>"@/path/to/myfile.jpg",
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
$response = curl_exec($ch);
?>

多くの人が_VIRUS_SCAN_URLとは何かを知りたがっているようです。

_VIRUS_SCAN_URL

開発者向けの新しいホストウイルススキャン。サーバーに損傷を与えるかどうかにかかわらず、ウイルスをチェックするためにウイルススキャンモジュールに送信される内部的にすべてのファイル。

サービスはhttp://virusade.comによって開発されていますが、まだベータモードであり、_VIRUS_SCAN_URLと@ thereapiPROTOCALです。

サーバーからドキュメントをフェッチするだけでスキャンされ、ウイルス以外の場合はアップロードサーバーに送信されます。

于 2013-03-02T17:50:21.747 に答える