i wanna make really sure, that a user can upload large files to my server.
which php settings do i have to consider in my php.ini file that make sure a file-upload doesn't fail?
i've now set those tow lines in my php.ini file:
upload_max_filesize = 500M ;
post_max_size = 500M ;
is there anything else i need to consider?
thank you for your advice.
You should check out the value of "memory_limit" as well.
Excerpt from the PHP Doc.
If memory limit is enabled by your configure script, memory_limit also affects file uploading. Generally speaking, memory_limit should be larger than post_max_size.
Related
I try to upload 300Mb file but not uploaded and not show any error message. Variable size display if i check as phpinfo() is
post_max_size 750M
upload_max_filesize 750M
memory_limit 800M
max_execution_time 9001
if i try small file its working fine. like 3mb.
Please help me to find solution.
What I've always found is that post_max_size needs to be bigger than upload_max_filesize, and I usually aim for having post_max_size being three times the other setting, in this case post_max_size 2250M though that's not ideal.
I'd also suggest setting the memory_limit higher too, though max execution time should generally be fine.
Really though, using a chunking solution such as Plupload or jQuery File Upload is probably better in the long term.
My proble is solved. I need to set these variable on modsec2.user.conf file
SecRequestBodyLimit 1073741824
SecRequestBodyNoFilesLimit 1073741824
This is a apache server file. and error was shown on Apache error log.
Thanks to all for help.
I'm using codeigniter, but what I've done is made a small upload form. When I try to upload a 49kb file it works, when I try to upload a 14mb file, not only does it not work, but it seems to be refusing to see it as a post. $this->input->post() is returning false. That is before all the CI code that checks upload size etc. So I don't understand what can be keeping the file from being uploaded all the way.
PHP has file size restrictions, default usually at 10MB. If you have access to php.ini, edit upload_max_filesize and post_max_size.
You can typically also accomplish this by adding the following to your .htaccess file, if you're on Apache:
php_value upload_max_filesize 100M
php_value post_max_size 100M
Other flags that might affect your success are max_execution_time, max_input_time and memory_limit.
I read so many articles out there in the internet and found that to change the php.ini file to upgrade the upload limit. But I do all the suffs and cant upload more than 10mb of files or so.
I am trying to add a feature to upload video file through the front end for users. But failed for some reason
Is there any other way to do it. Or is it because it is a video file or some thing like that
Make sure that you have (in php.ini, .htaccess, etc.):
increased post_max_size to at least twice the max file size that you might need to upload
increased upload_max_filesize to the max file size that you might want to upload
increased memory_limit to something bigger than post_max_size
On top of setting php.ini
upload_max_filesize = 200M
post_max_size = 200M
I owuld look into a flash uploader like uploadify. It will make your life much easier trust me.
Since you are changing the php.ini, are you restarting the webserver so that the changes take effect (if using mod_php)? Does the webserver itself have any restrictions set?
It's been a while since I've done this, but in my php.ini I have upload_max_filesize = 200M and I have post_max_size = 200M
I also set max_execution_time = 3000 If this is set too low, it'll cut off while the user is still uploading.
You should also bump up max_input_time and memory_limit
I want to change the max upload file limit dynamically. means by not changing the php.ini file on server.
Whenever user had uploaded more then 2 mb then my upload limit should be change.
I want to do all this through php.
Thanks in advance.
The limits enforces by upload_max_filesize are enforced before the php script is run, so the setting cannot be changed dynamically with ini_set.
For more information on the file upload ini settings and where they can be changed, see:
- http://php.net/manual/en/ini.core.php#ini.sect.file-uploads
- http://php.net/manual/en/configuration.changes.modes.php
Assuming by "user" you mean a visitor to your site, there are really only two methods you can enforce such a limit without the file reaching its final destination:
1) Before the upload has occurred: On the client side. You could definitely do this using a java-based uploader. Whether you can get the filesize of the selected file using javascript, I don't know.
2) After the file is uploaded to the server, but before you move it to the final destination (before you run move_uploaded_file)
Try this:
ini_set('upload_max_filesize', your_value_here);
Make sure also that you have specified the correct acceptable settings for:
file_uploads
upload_max_filesize
max_input_time
memory_limit
max_execution_time
post_max_size
If you can't modify your php.ini, you might be able to do it with a .htaccess file:
php_value upload_max_filesize 50M
php_value post_max_size 50M
I am developing a CMS where the clients will need to upload files larger than 2mb - up to 10mb at least. I have changed the details in the php.ini file and I cannot see anywhere else that the problem might be. Any help?
Cheers
Here's what I recommend changing (assuming Apache & PHP):
I've found this works well for up to about 30mb attachments
PHP Settings
max_execution_time = 120
max_input_time = 120
memory_limit = 30M
post_max_size = 30M
upload_max_filesize 30M
file_uploads = On (although it sounds like you already have this turned)
Apache Settings
LimitRequestBody 31457280
You need to set upload_max_filesize, post_max_size and memory_limit appropriately. post_max_size must be larger than upload_max_filesize, because there needs to be memory allocated for the request headers as well as the file payload.
In your php.ini:
; Maximum allowed size for uploaded files.
upload_max_filesize = 50M
; Maximum size of POST data that PHP will accept.
post_max_size = 50M
What errors are you getting in your error log once these have been done? Is it possible that your uploaded file is running foul of the memory limit on the script?
You can set the memory limit higher for this particular script by including the following line in your script:
ini_set("memory_limit","75M");
Make sure you changed upload_max_filesize AND post_max_size
As long as you have restarted your web service (ie apache) then the changes should take effect, however if you are developing for anyone other then yourself then instead of changing the php.ini I would add this to the upload script:
ini_set('upload_max_filesize', '10M');
as some people may not be able to modify php.ini this will change it just for the page it is on.