入力ファイルのフォーム名が整数の場合、PHP を使用した curl ファイルのアップロードに問題があります。<input type="file" name="1">
multipart/form-data を取得するために CURLOPT_POSTFIELDS に入れた次の配列があります。
$array = array(
"MAX_FILE_SIZE" => 80000,
"1" => '@'.$cfg['lpath'].'logos/'.domain($projekt['adres']).'.jpg;type=image/jpeg',
"2" => '@'.($cfg['lpath']==''?'/dev/null':'NUL:').';filename=',
"3" => '@'.($cfg['lpath']==''?'/dev/null':'NUL:').';filename=',
"send" => 'send it'
);
サーバーに送信すると、var_dump($_POST, $_FILES) は次のようになります。
$_POST:
array(2) {
["MAX_FILE_SIZE"]=>
string(5) "80000"
["send"]=>
string(7) "send it"
}
$_FILES:
array(1) {
["MAX_FILE_SIZE"]=>
array(5) {
["name"]=>
string(0) ""
["type"]=>
string(0) ""
["tmp_name"]=>
string(0) ""
["error"]=>
int(4)
["size"]=>
int(0)
}
}
配列キーを文字に変更すると、期待どおりに機能します。
$_FILES:
array(3) {
["a"]=>
array(5) {
["name"]=>
string(16) "filename.jpg"
["type"]=>
string(10) "image/jpeg"
["tmp_name"]=>
string(14) "/tmp/phpRZMiRA"
["error"]=>
int(0)
["size"]=>
int(6567)
}
["b"]=>
array(5) {
["name"]=>
string(0) ""
["type"]=>
string(0) ""
["tmp_name"]=>
string(0) ""
["error"]=>
int(4)
["size"]=>
int(0)
}
["c"]=>
array(5) {
["name"]=>
string(0) ""
["type"]=>
string(0) ""
["tmp_name"]=>
string(0) ""
["error"]=>
int(4)
["size"]=>
int(0)
}
}
バグですか?curl を使用してそのような配列を送信することは可能ですか?
私のPHPバージョンは5.3.25 Curlバージョン7.30.0です