]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/mediafile.php
File upload logging for dummies
[quix0rs-gnu-social.git] / lib / mediafile.php
index bcc8662f56f6e632895806794b6fcdacc7f387cf..7534dc53cb82318df7d3b9b7b3813bcc7f247088 100644 (file)
@@ -61,7 +61,7 @@ class MediaFile
 
     public function attachToNotice(Notice $notice)
     {
-        File_to_post::processNew($this->fileRecord->id, $notice->id);
+        File_to_post::processNew($this->fileRecord, $notice);
     }
 
     public function getPath()
@@ -74,6 +74,11 @@ class MediaFile
         return $this->short_fileurl;
     }
 
+    function getEnclosure()
+    {
+        return $this->getFile()->getEnclosure();
+    }
+
     function delete()
     {
         $filepath = File::path($this->filename);
@@ -248,15 +253,15 @@ class MediaFile
             File::respectsQuota($scoped, $_FILES[$param]['size']);
 
             $mimetype = self::getUploadedMimeType($_FILES[$param]['tmp_name'], $_FILES[$param]['name']);
+            $basename = basename($_FILES[$param]['name']);
 
             switch (common_config('attachments', 'filename_base')) {
             case 'upload':
-                $basename = basename($_FILES[$param]['name']);
                 $filename = File::filename($scoped, $basename, $mimetype);
                 break;
             case 'hash':
             default:
-                $filename = strtolower($filehash) . '.' . File::guessMimeExtension($mimetype); 
+                $filename = strtolower($filehash) . '.' . File::guessMimeExtension($mimetype, $basename);
             }
             $filepath = File::path($filename);
 
@@ -301,10 +306,10 @@ class MediaFile
             $result = copy($stream['uri'], $filepath) && chmod($filepath, 0664);
 
             if (!$result) {
+                common_log(LOG_ERR, 'File could not be moved (or chmodded) from '._ve($stream['uri']) . ' to ' . _ve($filepath));
                 // TRANS: Client exception thrown when a file upload operation fails because the file could
                 // TRANS: not be moved from the temporary folder to the permanent file location.
-                throw new ClientException(_('File could not be moved to destination directory.' .
-                    $stream['uri'] . ' ' . $filepath));
+                throw new ClientException(_('File could not be moved to destination directory.' ));
             }
         }
 
@@ -332,6 +337,7 @@ class MediaFile
         $unclearTypes = array('application/octet-stream',
                               'application/vnd.ms-office',
                               'application/zip',
+                              'text/html',  // Ironically, Wikimedia Commons' SVG_logo.svg is identified as text/html
                               // TODO: for XML we could do better content-based sniffing too
                               'text/xml');