Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there any size limit to post a file using curl?

Tags:

php

curl

telegram

I need to post files up to 50 MB to Telegram bot API.

Now I'm using Curl and everything tested and passed successfully. It means that I can only send small files (I couldn't send 8. 1 MB file in my test). So if I send large files (lets say more than 8 MB) all $_POST variables are empty, meaning nothing posted.

Question: Is there any limitation in sending file using curl? Because I asked my server administrator to increase related configuration in php.ini, but they replied that is not php.ini's problem and there is no limitation in curl.

like image 651
Hossein Shahsahebi Avatar asked Aug 11 '15 11:08

Hossein Shahsahebi


People also ask

What is the maximum file size allowed?

The maximum size file size is 4 GB. NTFS NTFS, which stands for New Technology File System, is an advanced file system that provides performance, security, reliability, and advanced features not found in FAT and FAT32 file systems.

Can Curl upload files?

Uploading files using CURL is pretty straightforward once you've installed it. Several protocols allow CURL file upload including: FILE, FTP, FTPS, HTTP, HTTPS, IMAP, IMAPS, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, and TFTP. Each of these protocols works with CURL differently for uploading data.

How do I upload a file using Curl post?

How to send a file using Curl? To upload a file, use the -d command-line option and begin data with the @ symbol. If you start the data with @, the rest should be the file's name from which Curl will read the data and send it to the server. Curl will use the file extension to send the correct MIME data type.

How do you post in Curl?

To POST a file with curl , simply add the @ symbol before the file location.


1 Answers

Upload limits are a security feature. Without them, a rogue program or attacker could feed your server with a continuous stream of data until your hard disk is full, thus rendering the whole server unusable.

From the security standpoint it isn't particularly useful to restrict outgoing data and, as far as I know, neither the Curl library nor PHP itself impose any limit.

Your symptoms suggest the problem is on the destination server. Since you appear to have access to it (you mention getting empty $_POST) I suggest you verify upload limits there. That's something you can do (and often change) yourself, you don't have to ask the server administrator. Main involved directives include:

  • post_max_size
  • upload_max_filesize
  • max_file_uploads
  • max_input_time

You can inspect them with phpinfo() or ini_get() and you can change them the usual way.

like image 123
Álvaro González Avatar answered Sep 23 '22 07:09

Álvaro González