コード例 #1
0
 /**
  * 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;
 }
コード例 #2
0
 /**
  * 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);
             }
         }
     }
 }