簡単な理論的質問:
PHPを使用してサーバーにファイルをアップロードするには、このメカニズムを選択しました(可能な場合):
File のバイトを読み取り、Simple Text として文字列に入れ、Simple Text Message($_REQUEST) としてサーバーに投稿し、次に、この「テキスト」をサーバー上の新しいファイルに書き込みます。
だから私の質問は:
ファイルのバイトを読み取り、文字列/文字列ビルダーに「そのまま」単純なテキストとして保存するにはどうすればよいですか?
file_get_contents
バイナリセーフで使用できます。
$binaryContent = file_get_contents('path/to/file');
コンテンツをエンコードするよりも送信に問題がある場合:
$binaryContent = base64_encode($binaryContent);
ただし、curl を使用してファイルをアップロードします。
php.net からhttp://www.php.net/manual/de/function.curl-setopt.php
/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/
$ch = curl_init();
$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');
curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);