When the file is too large, or the user's network status is average, the upload process usually takes a while. If the user is left waiting with a blank screen at this time, I believe most users will directly close the application, so one should monitor the upload progress. The need to report to users in real time was put on the table by Product Wang. A high-quality upload progress prompt will instantly make your app look up to.
Before PHP 5.4, you always needed to install additional extensions to monitor the file upload progress. Starting from 5.4, the new feature of session.upload_progress is introduced. We only need to enable the configuration in php.ini to monitor the file upload progress through the session. in php.ini.
Note: To study this chapter, you need to have a basic foundation in session, javascript and ajax.
We need to configure, pay attention to view and modify the php.ini file:
Configuration item
Description
session.upload_progress.enabled
Whether to enable the upload progress report (default enabled) 1 is on, 0 is off
session.upload_progress.cleanup
Whether to delete the progress data in time after the upload is completed (enabled by default, recommended to be enabled)
If _POST[session.upload_progress.name] is not set, no progress will be reported.
##session.upload_progress.freq[=1%]
The frequency of updating progress (number of bytes processed), also supports percentage representation of '%'.
session.upload_progress.min_freq[=1.0]
Time interval for updating progress (second level)
With the configuration enabled, we can record a complete file upload progress through session. In the session, an array with the following results will appear:
This array records the progress of file upload in detail, and the status of the files that have been processed is true. Next, we use a jQuery AJAX example to learn the file upload progress process.
First, in the form, you need to add an input tag with type=hidden, and the tag value is customized (it is recommended to use a meaningful value, because this value will be used in the background)
Here, a div with an ID of progress is added as a container to display the upload progress. We use js's setTimeout() to execute ajax regularly to obtain the file upload progress, and the background file returns the progress percentage of the file upload.
The above code returns the file upload progress every 0.1 seconds through JQ's ajax. And display the progress percentage in the div tag.
The background code needs to be divided into two parts. upload.php handles uploading files. progress.php gets the upload progress in the session and returns the progress percentage.
I won’t go into details about file upload here. Please refer to the above for detailed steps. upload.php:
The courseware is not available for download at the moment. The staff is currently organizing it. Please pay more attention to this course in the future~
Students who have watched this course are also learning