changeset 847:7fee98f15c3c

More fixes.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 26 Nov 2014 00:03:40 +0200
parents e0c9bf182bb7
children 2556828aaa93
files msite.inc.php
diffstat 1 files changed, 13 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/msite.inc.php	Tue Nov 25 23:54:38 2014 +0200
+++ b/msite.inc.php	Wed Nov 26 00:03:40 2014 +0200
@@ -1053,9 +1053,13 @@
 //
 // File table entry adding
 //
-function stFindOrAddFileEntry($entry, $type, $origName, $fileSize, $fileExt, $uploaderID)
+function stFindOrAddFileEntry($entry, $type, $origName, $fileSize, $fileExt, $fileType, $uploaderID)
 {
-  // Compute destination filename
+  $field = (($type == "preview") ? "preview" : "file")."_id";
+  if (($fentry = stFetchSQL("SELECT * FROM files WHERE id=".$entry[$field])) !== false)
+    return $fentry;
+
+  // Compute storage filename
   $fileName = sprintf("%03d-%s--%s%s.%s",
     $entry["id"],
     stFilterPathComponent($entry["author"]),
@@ -1067,14 +1071,13 @@
   $sql = stPrepareSQL(
     "INSERT INTO files (filename,origname,filetype,filesize,entry_id,uploader_id,utime) ".
     "VALUES (%s,%s,%s,%d,%d,%d,%d)",
-    $fileName, $origName, $fileInfo["id"], $fileSize, $entry["id"], $uploaderID, time());
+    $fileName, $origName, $fileType, $fileSize, $entry["id"], $uploaderID, time());
 
   if (($fileID = stExecSQLInsert($sql)) === false)
     return stError("Failed to add new ".$type." for entry #".$entry["id"]." '".$origName."'.");
 
   // Update entry's reference
-  $sql = stPrepareSQL("UPDATE entries SET ".($type == "preview" ? "preview" : "file")."_id=%d WHERE id=%d",
-    $fileID, $entry["id"]);
+  $sql = stPrepareSQL("UPDATE entries SET ".$field."=%d WHERE id=%d", $fileID, $entry["id"]);
 
   if (stExecSQL($sql) === false)
     return stError("Failed to update entry #".$entry["id"]." ".$type." ID ... :S");
@@ -1174,15 +1177,15 @@
     return stError("Preview file upload is not one of the supported preview file types.");
   
   // Get original extension
-  if (($fext = $fileInfo["fext"]) === false)
+  if (($fileExt = $fileInfo["fext"]) === false)
   {
-    $fext = ".tmp";
-    if (($rpos = strrpos($orgFilename, ".")) !== false)
-      $fext = substr($orgFilename, $rpos);
+    $fileExt = ".tmp";
+    if (($epos = strrpos($orgFilename, ".")) !== false)
+      $fileExt = substr($orgFilename, $epos);
   }
 
   // Find current or add new file entry
-  if (($fentry = stFindOrAddFileEntry($entry, $uploadType, $orgFilename, $fileSize, $fileInfo, $userID)) === false)
+  if (($fentry = stFindOrAddFileEntry($entry, $uploadType, $orgFilename, $fileSize, $fileExt, $fileInfo["id"], $userID)) === false)
     return FALSE;
 
   // Set permissions before moving the file