The upload_tmp_dir parameter in the PHP tutorial configuration is compared. If the file is in this directory, then move_uploaded_file will perform the move operation. Moreover, this comparison is case-sensitive, and / is also different under Windows. When the PHP configuration file is parsed, a realpath function will be called. That is to say, before you move_uploaded_file,
must pair $file['tmp_name'] = realpath($file[' tmp_name']); realpath.
There is another situation that everyone should pay attention to, that is, if move_uploaded_file is configured as an inaccessible path, then no matter how you handle it, move_uploaded_file will never successfully move the file.
When uploading files, you cannot move files using the move_uploaded_file function, but you can use copy or rename.
I’ve been confused too. In the document, it is rather vague. It is the function move_uploaded_file, which adds a step to check whether the file was uploaded by http post.
The following I found a file upload class on the Internet
**File upload class**/
class upload_file
{
/**statement**/
var $upfile_type,$upfile_size,$upfile_name,$upfile;
var $d_alt,$extention_list,$ tmp,$arri;
var $datetime,$date;
var $filestr,$size,$ext,$check;
var $flash_directory,$extention,$file_path,$base_directory;
var $url; //Jump path after successful file upload;
function upload_file()
{
/**Constructor**/
$this->set_url(" index.php"); //Initialize the jump path after successful upload;
$this->set_extention(); //Initialize the extension list;
$this->set_size(50); // Initialize the kb limit of uploaded files;
$this->set_date(); ;set_base_directory("attachmentfile"); //Initialization file upload root directory name, can be modified! ;
}
/**File type**/
function set_file_type($upfile_type)
{
$this->upfile_type = $upfile_type; //Get the file type ;
}
/**Get file name**/
function set_file_name($upfile_name)
{
$this->upfile_name = $upfile_name; //Get the file name ;
}
/**Get file**/
function set_upfile($upfile)
{
$this->upfile = $upfile; //Get the file in The name of the temporary file stored on the server; upfile_size; //Get file size;
}
/**Get file size**/
function set_url($url)
{
$this->url = $ url; //Set the jump path after successfully uploading the file; ;extention = preg_replace('/.*.(.*[^.].*)*/iu','1',$this->upfile_name); //Get the file extension;
}
/**Set the jump path after successful file upload**/
function set_datetime()
{
$this->datetime = date("ymdhis"); //Generate file name by time;
}
/**Get file extension**/
function set_date()
{
$this->date = date("y-m-d"); //Generate directory by date Name;
}
/**Initialization allows uploadingSet file name**/
function set_extension()
{
$this->extension_list = "doc|xls|ppt |avi|txt|gif|jpg|jpeg|bmp|png"; //Extension name allowed to be uploaded by default;
}
/**Set directory name**/
function set_size($ size)
{
$this->size = $size; function set_base_directory($directory)
{
$this->base_directory = $directory; //Generate file storage root directory;
}
/**Initialize allowed upload file types**/
function set_flash_directory()
{
$this->flash_directory = $this->base_directory."/".$this->date; //Generate file storage subdirectory;
}
/**Set maximum upload kb limit**/
function showerror($errstr="Unknown error! "){
echo "";
exit();
}
/**Initialization file storage root directory**/
function go_to($str,$url)
{
echo "";
exit();
}/**If the root directory is not created, create the file storage directory**/
function mk_base_dir()
{
if (! file_exists($this->base_directory )){ //Check whether the root directory exists;
@mkdir($this->base_directory,0777); //Create if it does not exist;
}
}/* *If the subdirectory is not created, create the file storage directory**/
$this->file_path = $this->flash_directory."/".$this->datetime.".".$this->extension; //Generate complete file access path;
function mk_dir()
{
if (! file_exists($this->flash_directory)){ //Check whether the subdirectory exists;
@mkdir($this ->flash_directory,0777); //Create if does not exist;
}
}
/**Get the decomposed file types allowed to be uploaded in the form of an array**/
function get_compare_extention()
{
$this->ext = explode("|",$this->extention_list);//Use "|" to explode the default extension;
}
/**Check whether the extension is in violation* */
function check_extension()
{
for($i=0;each($this->ext);$i++) //Traverse the array;
{
if( $this->ext[$i] == strtolower($this->extension)) //Compare the file extension to see if it matches the default allowed extension;
{
$this->check = true; ".$this->extention_list." One of them! ");}
// Warning if not matched
}
/**Check whether the file size exceeds the standard**/
function check_size()
{
if($this-> ;upfile_size > round($this->size*1024)) //Whether the file size exceeds the default size;
{
$this->showerror("Uploaded attachments must not exceed".$ this->size."kb"); //Warn if exceeded;
}
}
/**Full file access path**/
function set_file_path()
{}
/**Upload file**/
function copy_file()
{
if(copy($this->upfile,$this->file_path)){ / /Upload file;
print $this->go_to("The file has been uploaded successfully!",$this->url); //Uploaded successfully;
}else {
print $this-> ;showerror("Unexpected error, please try again!"); //Upload failed;
}
}
/**Complete save**/
function save()
{
$this->set_flash_directory(); //Initialize the file upload subdirectory name;
$this->get_extention(); //Get the file extension;
$this-> get_compare_extention(); //Use "|" to decompose the default extension;
$this->check_extention(); //Detect whether the file extension is in violation;
$this->check_size(); / /Check whether the file size exceeds the limit;
$this->mk_base_dir(); //If the root directory does not exist, create it;
$this->mk_dir(); //If the subdirectory does not exist, then create;
1 2