Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

upload multiple files to php server using curl command line

Tags:

php

curl

I need to upload multiple files to a server using the curl command line utility. for a single file I have no problem using:

curl -F "[email protected]"   http://localhost:8888/web/Upload.php 

how would I do this with more than one file so that the php variable $_FILES["image"]["error"] would return an array?

I've tried

curl -F "[email protected]" -F "[email protected]"  http://localhost:8888/web/Upload.php curl -F "[email protected],[email protected]"  http://localhost:8888/web/Upload.php 

but these are a stab in the dark.

like image 405
sapatos Avatar asked Jul 22 '12 11:07

sapatos


People also ask

How do I send multiple files using cURL command?

To post a file with Curl, use the -d or -F command-line options and start the data with the @ symbol followed by the file name. To send multiple files, repeat the -F option several times.

How do I upload a file using cURL command?

To execute a CURL file upload, you need to use the –d command-line option and begin data with the @ symbol. The file's name should come after the data with @ symbol so CURL can read it and send it to the server.

Can I use cURL in PHP?

cURL is a PHP extension that allows you to use the URL syntax to receive and submit data. cURL makes it simple to connect between various websites and domains.


1 Answers

The trick is to name the file uploading parameters unique.

curl -F "[email protected]" -F "[email protected]"  http://localhost:8888/web/Upload.php 

This will show up in the $_FILES superglobal as $_FILES['image'] and $_FILES['image2'].

To make the files grouped under one $_FILES index you need to name the parameters as arrays:

curl -F "image[][email protected]" -F "image[][email protected]"  http://localhost:8888/web/Upload.php 
like image 128
complex857 Avatar answered Oct 13 '22 00:10

complex857