This article mainly introduces the PHP file upload processing method, and analyzes the problems encountered in the PHP file upload operation and related solutions in the form of examples. Friends in need can refer to it
I recently encountered a I have been fooling myself for a long time. I want to talk about my initial thoughts
PHP’s upload mechanism is completely encapsulated and can be implemented with just a few lines of code. Its implementation process is like this
UPLOAD the file to the temporary directory –>Use move_uploadde_file() to the specified directory
This is the PHP upload process, or you can perform some verification in the middle. For example, determine whether the document is submitted through the upload method, or whether the file extension is
allowed by us, and a series of verifications. The simple code I gave can be regarded as a starting point.
$targetFolder = '/uploads'; // 定义根目录 if (!empty($_FILES)) { $tempFile = $_FILES['Filedata']['tmp_name']; if(is_uploaded_file($tempFile)) { $targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder; $targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name']; $fileTypes = array('jpg','jpeg','gif','png'); // 允许的后缀扩展 $fileParts = pathinfo($_FILES['Filedata']['name']); if (in_array($fileParts['extension'],$fileTypes)) { move_uploaded_file($tempFile,$targetFile); echo '1'; } else { echo '非法上传文档.'; } }else { echo "非法上传文件"; } }
The above method basically meets the requirements for file upload. But that's not what I need.
Upload function
Requirements: First click to upload the document, and then select the upload file. After JS is uploaded, a value will be returned to display the current timestamp name. The file is in the Document Name box.
Then click Submit to submit the form.
The server processes the submitted form and renames the uploaded file.
The problem also arises. The server is IIS, and it is a virtual directory implemented using mapping.
In this case $_SERVER['DOCUMENT_ROOT'] is not in the root directory of the PHP site
Although the upload function is completed, this file cannot be downloaded. From the perspective of server security, I still plan to place the file in the PHP site.
Then I fell into a thinking limitation.
Think about it again:
Why I don’t need to implement PHP’s upload mechanism again.
Don’t PHP put the files in the temporary directory first? Then why do I assume that the directory after the JS upload is successful is also a temporary directory,
and then copy the file when submitting the form again. Go to the specified directory to complete the required function.
PHP has a file copy function Copy(); and then cooperates with the rename() function. In this way, the second move and renaming of the uploaded file can be completed.
Note: If you copy a zero-byte file under the window platform, copy() will return FALSE, but the file will be copied correctly.
Then PHP actively refers to the file processing mechanism of Liunx in file processing. PHP's file operation efficiency is related to I/O writing and the operating system.
Summary: The above is the entire content of this article, I hope it will be helpful to everyone's study.
Related recommendations:
PHP calling interface uses post method to transmit json data
phpSimple Method of implementing combined sorting
Method of combining PHP with Ueditor and modifying the image upload path
The above is the detailed content of PHP file upload processing example. For more information, please follow other related articles on the PHP Chinese website!