PHPycho Posted March 11, 2007 Share Posted March 11, 2007 Hello forums Now i am totally shifting towards OOP.. I had tried to make a upload class but it didnt worked .here is the code uploader.class.php <?php class uploader { var $uploadDir; var $thumbDir; var $newFileName; /*var $file_name; var $file_type; var $file_size; var $file_temp_dir;*/ var $fileInfo = array(); var $maxFileSize; var $allowTypes = array(); var $errMsg = ""; var $suMsg = ""; /***/ var $fileExt; function getExtension() { $fileExt = explode(".",$this->$fileInfo['name']); $this->fileExt = $fileExt[1]; } function checkTypes() { if(!in_array($this->fileInfo['type'],$this->allowTypes)) { return FALSE; } else return TRUE; } function doUpload() { // Check the Size /* If fileSize > maxSize */ if($this->fileInfo['size'] > $this->maxFileSize) { $this->errMsg .= "File Size is larger<br />"; } /* If fileSize == 0 */ else if($this->fileInfo['size'] == 0) { $this->errMsg .= "No file uploaded <br />"; } /* Check the Types */ else if(!$this->checkTypes()) { $this->errMsg .= "Invalid file type !! <br />"; } /* If everything goes fine then Upload */ else { //upload to destDir echo "Final step"; $uploadPath = $this->uploadDir."/".$this->fileInfo['name']; move_uploaded_file($this->fileInfo['tmp_name'],$uploadPath); //finally rename $ext = $this->getExtension(); $newUploadPath = $this->uploadDir."/".$this->newFileName.".".ext; if(rename($uploadPath,$newUploadPath)) { $this->suMsg = "Sucessfully Uploaded & Renamed !!"; } } } function deleteFile() { } function renameFile() { } } ?> action.php <?php if(isset($_POST[] ...) { include "uploader.class.php"; $uploaderObj = new uploader(); //assign all the variable properties of uploader.class.php $uploaderObj->doUpload(); } ?> But nothing happens What i want ? 1>Any techniques for checking how the class is working ie any debugging tips 2>Any changes in above code to make it efficient and effective Note: its for PHP4 ie any tips n modifications 3> when i try to echo $uploaderObj->getExtension(), it gives the follwing error Fatal error: Cannot access empty property in C:\Program Files\xampp\htdocs\designtoko\libs\uploader.class.php on line 21 and why it is so Thanks for reading my post. Thanks in advance to all of you and awaiting for the results... Link to comment https://forums.phpfreaks.com/topic/42186-help-me-on-the-upload-class/ Share on other sites More sharing options...
Glyde Posted March 11, 2007 Share Posted March 11, 2007 Try this for your uploader class: <?php class uploader { var $uploadDir; var $thumbDir; var $newFileName; var $fileInfo = array(); var $maxFileSize = 1024; // Max filesize of 1024 bytes (1 MB) var $allowTypes = array(); var $errMsg = array(); var $suMsg = ""; var $fileExt; var $uploaded = false; var $fileLocation; function uploader($file) { $this->fileInfo = $file; } function getExtension() { $fileExt = explode(".",$this->$fileInfo['name']); $this->fileExt = $fileExt[1]; } function checkTypes() { if(!in_array($this->fileInfo['type'],$this->allowTypes)) return false; return true; } function doUpload($file) { if (!$this->fileInfo['tmp_name']) $this->errMsg[] = "No file uploaded"; if ($this->fileInfo['size'] > $this->maxFileSize) $this->errMsg[] = "File size is too large"; if (!$this->checkTypes()) $this->errMsg[] = "Invalid file type"; if (!$this->errMsg) { $filename = $this->newFileName ? $this->newFileName : $this->fileInfo['name']; $this->fileLocation = $uploadPath = $this->uploadDir . "/" . $filename; move_uploaded_file($this->fileInfo['tmp_name'], $uploadPath); $this->uploaded = true; } } function deleteFile() { if ($this->uploaded) return unlink($this->fileLocation); } function renameFile($newFilename) { if ($this->uploaded) return rename($this->fileLocation, $this->uploadDir . "/" . $newFilename); else $this->newFileName = $newFilename; return true; } } ?> Try this for your action file: <?php if (isset($_FILES['filename'])) { $uploaderObj = new uploader($_FILES['filename']); $uploaderObj->doUpload(); } ?> Link to comment https://forums.phpfreaks.com/topic/42186-help-me-on-the-upload-class/#findComment-204837 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.