Я пишу API, и я хочу обрабатывать загрузки файлов из формы POST
. Разметка для формы не является слишком сложной:
<form action="" method="post" enctype="multipart/form-data">
<fieldset>
<input type="file" name="image" id="image" />
<input type="submit" name="upload" value="Upload" />
</fieldset>
</form>
Однако у меня возникают трудности с пониманием того, как обращаться с этой серверной стороной и отправлять вместе с запросом cURL.
Я знаком с отправкой запросов POST
с cURL с массивом данных, а ресурсы, которые я прочитал при загрузке файлов, говорят мне префикс имени файла с символом @
. Но эти же ресурсы имеют жестко закодированное имя файла, например.
$post = array(
'image' => '@/path/to/myfile.jpg',
...
);
Ну, какой путь к файлу это? Где я его найду? Было бы что-то вроде $_FILES['image']['tmp_name']
, и в этом случае массив $post
должен выглядеть так:
$post = array(
'image' => '@' . $_FILES['image']['tmp_name'],
...
);
Или я об этом ошибаюсь? Любые советы были бы наиболее оценены.
РЕДАКТИРОВАТЬ: Если кто-то может дать мне фрагмент кода, где бы я пошел со следующими фрагментами кода, я был бы очень благодарен. Я в основном после того, что я буду отправлять как параметры cURL, и образец того, как использовать эти параметры с принимающим script (позвольте ему curl_receiver.php
для аргумента).
У меня есть эта веб-форма:
<form action="script.php" method="post" enctype="multipart/form-data">
<fieldset>
<input type="file" name="image />
<input type="submit" name="upload" value="Upload" />
</fieldset>
</form>
И это будет script.php
:
if (isset($_POST['upload'])) {
// cURL call would go here
// my tmp. file would be $_FILES['image']['tmp_name'], and
// the filename would be $_FILES['image']['name']
}