Home > Article > Backend Development > Veterans talk about discuz implementation of uploading files in PHP_PHP tutorial
PHP is still relatively commonly used, so I studied PHP upload files and shared them with you here. I hope it will be useful to everyone. The default upload limit of PHP is a maximum of 2M. If you want to upload files exceeding this setting, you need to adjust some parameters of PHP, apache, etc.
controls the maximum amount of data that PHP can receive during a form submission using the POST method. If you want to use the PHP file upload function, you need to change this value to be larger than upload_max_filesize. max_input_time limits the time in seconds to receive data through POST, GET, and PUT methods. If the application is running on a low-speed link, you need to increase this value to accommodate the more time required to receive data memory_limit In order to avoid running scripts using a large amount of system available memory, PHP allows you to define memory usage limits.
Use the memory_limit variable to specify the maximum memory capacity that a single script can use. The value of the variable memory_limit should be appropriately greater than the value of post_max_size max_execution_time. max_execution_time sets the time that PHP waits for the script to be executed before forcibly terminating the script. This time Measured in seconds. This variable is useful when the script enters an infinite loop. However, this feature can also cause the operation to fail when there is a legitimate activity that takes a long time to complete (such as uploading a large file). In such cases, you must consider increasing the value of this variable to prevent PHP from shutting down the script when the script is executing some important processes. For Linux hosts, it may be under /etc/httpd/conf.d/access.conf/ There is also a php.conf file, which may solve the file size limit problem of some systems.
Example of using discuz to implement PHP file upload application
The attachment function of the forum was not originally designed for file management. Due to server configuration, PHP, network and other aspects Factors that make uploading files through forums not a good solution. For those who really need to improve the conditions for uploading forum attachments, you can try to set the parameters mentioned above in php.ini to adapt to the needs of large file uploads. At the same time, don’t forget to set the attachment restrictions in the background of the forum.
At the same time, here is a configuration guide provided by some friends who have successfully uploaded large attachments through http. Of course, due to different server configurations and network conditions, it may not be applicable to your situation. There may be many The place needs to be modified according to the following: Open php.ini,
<ol class="dp-xml"> <li class="alt"><span><span>file_uploads on 是否允许通过HTTP上传文件的开关。默认为ON即是开 </span></span></li> <li class=""><span>upload_tmp_dir -- 文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹 </span></li> <li class="alt"><span>upload_max_filesize 8m 望文生意,即允许上传文件大小的最大值。默认为2M </span></li> <li class=""><span>post_max_size 8m 指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M </span></li> </ol>
Generally, after setting the above four parameters, under normal network conditions, it is not a problem to upload a file of 8M, it will definitely work if you only set the above four items. Unless your network really has a 100M/S upload speed, you have to continue setting the following parameters.
<ol class="dp-xml"> <li class="alt"><span><span>max_execution_time 600 每个PHP页面运行的最大时间值(秒),默认30秒 </span></span></li> <li class=""><span>max_input_time 600 每个PHP页面接收数据所需的最大时间,默认60秒 </span></li> <li class="alt"><span>memory_limit 8m 每个PHP页面所吃掉的最大内存,默认8M </span></li> </ol>
After modifying the above parameters, you can upload large files under normal circumstances allowed by the network