/** * Goes through the array of files and processes them accordingly. * The result is an array of the appropiate Resource class that has been * created using the ResourceFactory class. * * @return An array of Upload objects that have already been moved to a safer * location. */ function process($destinationFolder) { // first, check if the upload feature is available $config =& Config::getConfig(); if (!$config->getValue("uploads_enabled")) { return FILE_UPLOADS_NOT_ENABLED; } // array used to store the files that have already been saved $uploads = array(); if ($destinationFolder[strlen($destinationFolder - 1)] != "/") { $destinationFolder .= "/"; } foreach ($this->_files as $file) { $upload = new FileUpload($file); $fileName = $upload->getFileName(); if ($this->my_move_uploaded_file($upload->getTmpName(), $destinationFolder . $fileName)) { $upload->setFolder($destinationFolder); $upload->setError(0); } else { $upload->setError(1); } array_push($uploads, $upload); } return $uploads; }
/** * checks if there are any mime parts, perhaps attachments or something like * that... */ function parseMimeParts($parts) { $this->_attachments = array(); foreach ($parts as $part) { MoblogLogger::log("attachment type = " . $part->ctype_primary . "/" . $part->ctype_secondary); if (strtolower($part->ctype_primary) == "text" && strtolower($part->ctype_secondary) == "plain") { // if ctype_primary == text and ctype_secondary == plain, it should be text format e-mail MoblogLogger::log("Reparsing the body of the message!"); MoblogLogger::log("text/plain part - contents = " . $part->body); $this->parseBody($part->body); $this->_inputEncoding = strtoupper($part->ctype_parameters['charset']); } elseif (strtolower($part->ctype_primary) == "multipart" && strtolower($part->ctype_secondary) == "alternative") { // if ctype_primary == multipart and ctype_secondary == alternative, it should be html format e-mail // We should look into it's child to get the real body foreach ($part->parts as $childPart) { if (strtolower($childPart->ctype_primary) == "text" && strtolower($childPart->ctype_secondary) == "plain") { $this->parseBody($childPart->body); $this->_inputEncoding = strtoupper($childPart->ctype_parameters['charset']); } } } else { // whatever comes as a part, we will take it and treat it as if it was // a normal resource as long as it's not an application/smil thingie... if (strtolower($part->ctype_secondary) != 'html' && strtolower($part->ctype_secondary) != 'smil' && MOBLOG_IGNORE_SMIL_ATTACHMENTS) { // GalleryResources::addResource only deals with uploaded files, so we'll // have to pretend that this is one of them! $config =& Config::getConfig(); // $tmpFolder = $config->getValue( "temp_folder" ); // $tmpFolderName = $tmpFolder."/".md5(microtime()); $tmpFolderName = $config->getValue("temp_folder"); File::createDir($tmpFolderName); MoblogLogger::log("Creating temp folder = {$tmpFolderName}"); $fileName = stripslashes($part->ctype_parameters["name"]); if ($fileName == "") { $fileName = stripslashes($part->d_parameters["filename"]); } $fileName = str_replace("\"", "", $fileName); $fileName = str_replace("'", "", $fileName); $tmpName = $tmpFolderName . "/" . md5(microtime()) . "_" . $fileName; $fileName = urldecode($fileName); if (MOBLOG_FORCE_ENCODE_TO_UTF8) { $fileName = $this->encodeToUTF8($fileName, $this->_inputEncoding); } $f = new File($tmpName); $f->open("ab+"); MoblogLogger::log("fileName = " . $tmpName); MoblogLogger::log("Saving attachment as = " . $tmpName); //MoblogLogger::log( "base64 encoded data = ".$part->body ); if (!$f->write($part->body)) { MoblogLogger::log("There was an error writing the temporary file"); die; } MoblogLogger::log("File saved ok!"); MoblogLogger::log("FILENAME = {$fileName}"); $uploadInfo = array("name" => urldecode($fileName), "type" => $part->ctype_primary . "/" . $part->ctype_secondary, "tmp_name" => $tmpName, "size" => $f->getSize(), "error" => 0); $upload = new FileUpload($uploadInfo); $upload->setFolder($tmpFolderName); array_push($this->_attachments, $upload); } } } }