<Html>
<Head>
<Meta http-equiv = "content-type" content = "text/html; charset = UTF-8"/>
<Title> php tutorial file Image Upload Program </title>
</Head>
<Body>
<Form enctype = "multipart/form-data" action = "upx. php" method = "post">
<Input name = "swfile" type = "file">
<Input type = "submit" value = "Upload">
</Form>
</Body>
</Html>
Upx. php file
<? Php
// Upload operation
Require_once './libs/uploadx. php ';
$ Upx = new uploadx ();
$ Upx-> uploadx_form = 'swfile ';
$ Upx-> uploadx_save = "upload ";
$ Upx-& gt; uploadx_size = "1024 ";
$ Upx-> uploadx_name = time ();
$ Upx-> file ();
Print_r ($ upx-> file );
?>
Uploadx. php files
<? Php
/*
Usage:
Html table single page
-------------------------------------------------------------------------
<Form enctype = "multipart/form-data" action = "upload. php" method = "post">
<Input name = "swfile" type = "file">
<Input type = "submit" value = "Upload">
</Form>
-------------------------------------------------------------------------
Upload. php processing page
-------------------------------------------------------------------------
<? Php
Require_once './uploadx. php ';
$ Upx = new uploadx ();
$ Upx-> uploadx_form = 'swfile'; // Form Control name (name of the form upload Control <input name = "swfile" type = "file"/>)
$ Upx-> uploadx_save = "temp"; // save the file directory (the Upload File storage directory can be a relative or absolute path)
$ Upx-> uploadx_type = 'jpg | gif | png | swf '; // specifies the upload type based on the suffix. Each suffix is separated by "|)
$ Upx-> uploadx_size = "1024"; // the upload size (unit: kb. Example: 1024 = KB)
$ Upx-> uploadx_name = time (); // the uploaded file name (which can be customized. Example: date ("y-m-d", time ()))
If ($ upx-> file ()){
Echo "uploaded <br/> ";
Echo "name->". $ upx-> file ['name']. "<br/> ";
Echo "path->". $ upx-> file ['path']. "<br/> ";
Echo "size->". $ upx-> file ['SIZE']. "<br/> ";
Echo "type->". $ upx-> file ['type']. "<br/> ";
Echo "time->". $ upx-> file ['time']. "<br/> ";
Echo "result->". $ upx-> file ['info']. "<br/> ";
} Else {
Echo $ upx-> file ['info'];
}
-------------------------------------------------------------------------
*/
Class uploadx {
Public $ uploadx_form; // Form Control name
Public $ uploadx_save; // save the file directory
Public $ uploadx_type; // upload type allowed
Public $ uploadx_size; // upload size allowed
Public $ uploadx_name; // name of the uploaded file
Function _ construct () {// initialize the function
$ This-> uploadx_form = 'Attach ';
$ This-> uploadx_save = 'temp ';
$ This-> uploadx_type = 'jpg | gif | png | swf | flv | rar | 7z | zip | doc | docx | ppt | pptx | xls | xlsx | txt | pdf | wav | mp3 | wma | rm | rmvb | wmv ';
$ This-> uploadx_size = '000000 ';
$ This-> uploadx_info = false;
}
Function mkdirs ($ path, $ mode = 0777 ){
$ Rootdir = '';
If (substr ($ path, 0, 1) = '/') $ rootdir = $ _ server ['document _ root'];
$ Path = $ rootdir. $ path;
If (! Is_dir ($ path )){
$ This-> mkdirs (dirname ($ path), $ mode );
Mkdir ($ path, $ mode );
}
Return true;
}
Function file (){
If (! Isset ($ _ files [$ this-> uploadx_form]) {
$ This-> file = array ('file' => false, 'info' => 'upload error! Check whether the form upload Control name ['. $ this-> uploadx_form.'] is correct! ');
Return false;
}
Switch ($ _ files [$ this-> uploadx_form] ['error']) {
Case 1:
$ This-> file = array ('file' => false, 'info' => 'specifies that the size of the uploaded file exceeds the server limit! ');
Return false;
Break;
Case 2:
$ This-> file = array ('file' => false, 'info' => 'indicates that the size of the uploaded file exceeds the size limit of the form! ');
Return false;
Break;
Case 3:
$ This-> file = array ('file' => false, 'info' => 'only some files are uploaded, and the files are incomplete! ');
Return false;
Break;
Case 4:
$ This-> file = array ('file' => false, 'info' => 'You have not selected to upload any files! ');
Return false;
}
$ Postfix = pathinfo ($ _ files [$ this-> uploadx_form] ['name'], pathinfo_extension );
If (stripos ($ this-> uploadx_type, $ postfix) === false ){
$ This-> file = array ('file' => false, 'info' => 'indicates that the file type to be uploaded has exceeded the limit, and the file type can be uploaded :'. $ this-> uploadx_type );
Return false;
}
If (round ($ _ files [$ this-> uploadx_form] ['SIZE']/1024)> $ this-> uploadx_size ){
$ This-> file = array ('file' => false, 'info' => 'specifies that the size of the uploaded file exceeds the size limit. The file upload range is :'. $ this-> uploadx_size. 'kb ');
Return false;
}
If ($ this-> mkdirs ($ this-> uploadx_save )){
$ This-> uploadx_name = isset ($ this-> uploadx_name )? $ This-> uploadx_name. '.'. $ postfix: $ _ files [$ this-> uploadx_form] ['name'];
If (! @ Move_uploaded_file ($ _ files [$ this-> uploadx_form] ['tmp _ name'], $ this-> uploadx_save. '/'. $ this-> uploadx_name )){
$ This-> file = array ('file' => false, 'info' => 'an error occurs during file upload and storage. Check the path or directory permission .');
Return false;
}
} Else {
$ This-> file = array ('file' => false, 'info' => 'the Server Directory does not exist. Automatic Directory Creation fails. Check whether you have the permission! ');
Return false;
}
@ Chmod ($ this-> uploadx_save. '/'. $ this-> uploadx_name, 0777 );
$ This-> file = array (
'File' => true,
'Name' => $ this-> uploadx_name,
'Path' => $ this-> uploadx_save. '/'. $ this-> uploadx_name,
'SIZE' = >$ _ files [$ this-> uploadx_form] ['SIZE'],
'Type' => $ postfix,
'Time' => time (),
'Info' => 'the upload is successful! '
);
Return true;
}
}