Mercurial > hg > fapweb
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