Я хочу отправить форму с вводом: файл для отправки информации и загрузки некоторых (от 2 до 10) файлов.когда форма отправляет информацию, отправляется на главный хост (форма: действие), и я выполняю некоторый процесс над данными, и я хочу загрузить отправку файлов на другой хост без загрузки на главный хост, поэтому я исследую и нахожу CURL способ отправки этой части для одного файла PHPна другом хосте и выгрузки файлов на этот хост, и я финансирую 3 способа отправки файлов: (я использовал функцию для обнаружения всех отправляемых файлов и пользователя $ i для индексов и помещал в массив перед отправкой)
1:просто используйте реальный путь: '@'.realpath($_FILES['attach']['tmp_name'][$i]);
2: используйте файл create: curl_file_create(realpath($_FILES['attach']['tmp_name'][$i]),mime_content_type($_FILES['attach']['tmp_name'][$i]),basename($_FILES['attach']['tmp_name'][$i]));
3: используйте CurlFile: new CurlFile(realpath($_FILES['attach']['tmp_name'][$i]),mime_content_type($_FILES['attach']['tmp_name'][$i]),basename($_FILES['attach']['tmp_name'][$i]));
, но он не работает и уничтожаетмои файлы для отправки, потому что я использую этот код на другом сервере для проверки того, как это работает, но он не работает
этот код находится на другом сервере (цель CURL):
for($i=0;$i<count($_FILES['attachment']['tmp_name']);$i++){
$tmp_name=$_FILES['attachment']['tmp_name'][$i];
$name=$_FILES['attachment']['name'][$i];
$size=$_FILES['attachment']['size'][$i];
$EXTENSION=pathinfo($_FILES['attachment']['tmp_name'][$i],PATHINFO_EXTENSION);
/*uploading files and insert this information to database ...*/
}
, ново всех трех случаях я сказал, что расширение будет "tmp", а не реальным расширением моих файлов отправки;так как я могу это исправить?
ПУТЬ 1: for($i=0;$i<count($_FILES['attachment']['tmp_name']);$i++){
$PostItems['attachment['.$i.']']=new CurlFile(realpath($_FILES['attachment']['tmp_name'][$i]),mime_content_type($_FILES['attachment']['tmp_name'][$i]),basename($_FILES['attachment']['tmp_name'][$i]));
}
ПУТЬ 2: for($i=0;$i<count($_FILES['attachment']['tmp_name']);$i++){
$PostItems['attachment['.$i.']']=curl_file_create($_FILES['attachment']['tmp_name'][$i]),mime_content_type($_FILES['attachment']['tmp_name'][$i]),basename($_FILES['attachment']['tmp_name'][$i]));
}
ПУТЬ 3: for($i=0;$i<count($_FILES['attachment']['tmp_name']);$i++){
$PostItems['attachment['.$i.']']='@'.realpath($_FILES['attachment']['tmp_name'][$i]);
}
$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$TargetURL);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_VERBOSE,0);
curl_setopt($ch,CURLOPT_POSTFIELDS,$PostItems);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$result=curl_exec($ch);curl_close($ch);
echo $result;
я ожидаю, что на другом сервере (цель curl) я получаю информацию от отправки файлов, но во всех отношениях расширение файлов должно быть «tmp», а имена файлов - «php1234.tmp» и не настоящие мои файлыимя