Recently encountered a thing, put himself in a hole for a long time, I want to talk about the idea I started
PHP upload mechanism package is very complete, basic lines of code can be achieved, his implementation process is this
Upload to a file in a temporary directory?> use Move_uploadde_file () to the specified directory
This is the PHP upload process, or you can do some verification in the middle. For example, whether the document is submitted by upload or the extension of the file is not what we allow
And so on a series of validations. I can give you some simple code.
$targetFolder = '/uploads '; // define root 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 '); // allowed suffix extension
$fileParts = pathinfo ($_files[' filedata '] [' name ']); if (In_array ($fileParts [' extension '], $fileTypes)) {
move_uploaded_file ($tempFile, $targetFile);
echo ' 1 ';
} else { echo ' illegally uploading documents. ' &nbSP;&NBSP}}else { echo "illegally uploading files"; }
}
The above method basically satisfies the file upload. But that's not what I need.
Requirements: First click Upload Document, and then select Upload file, JS upload will return a value, display the current timestamp asked the name of the file in the document name this box.
Then click Submit and submit the form.
The server processes the submitted form and renames the uploaded file.
The problem also comes with the server being IIS, and then it is implemented in a way that maps the virtual directory.
In this case $_server[' document_root ' is not in the root directory of the PHP site
Although the upload function was completed, it was not possible to download the file. From the security considerations of the server, still intend to put the file in the PHP site.
And then I got stuck in a mental conditioning.
Think again:
Why I do not have to implement the PHP upload mechanism in the way repeated.
Does PHP not put files in the temp directory first? And then I'm assuming that the directory that JS uploaded successfully is also a temporary directory,
Then make a copy of the file when you submit the form again. To the specified directory this completes the required functionality.
PHP has a file copy function copy (); Then in conjunction with the rename () function. This completes the second move and rename of the file after uploading.
Note: If you copy a 0-byte file under the window platform, copy () will return FALSE, but the file will also be copied correctly.
Then PHP in the file processing, the positive reference to the Liunx file processing mechanism. PHP's file manipulation efficiency, which is related to I/O to write and operating system.
Summary: In fact, there are many ways to solve problems, and do not give yourself a circle to limit your thinking.