Mercurial > hg > fapweb
changeset 848:2556828aaa93
Aaaand some more fixes.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 26 Nov 2014 00:11:10 +0200 |
parents | 7fee98f15c3c |
children | d0b6daedd21c |
files | msite.inc.php |
diffstat | 1 files changed, 20 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/msite.inc.php Wed Nov 26 00:03:40 2014 +0200 +++ b/msite.inc.php Wed Nov 26 00:11:10 2014 +0200 @@ -1056,8 +1056,6 @@ function stFindOrAddFileEntry($entry, $type, $origName, $fileSize, $fileExt, $fileType, $uploaderID) { $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", @@ -1067,14 +1065,27 @@ ($type == "preview" ? "_preview" : ""), $fileExt); - // Create new file entry - $sql = stPrepareSQL( - "INSERT INTO files (filename,origname,filetype,filesize,entry_id,uploader_id,utime) ". - "VALUES (%s,%s,%s,%d,%d,%d,%d)", - $fileName, $origName, $fileType, $fileSize, $entry["id"], $uploaderID, time()); + if (($fileID = stFetchSQLColumn("SELECT id FROM files WHERE id=".$entry[$field])) !== false) + { + $sql = stPrepareSQL( + "UPDATE files SET filename=%s,origname=%s,filetype=%s,filesize=%d,entry_id=%d,uploader_id=%d,utime=%d ". + "WHERE id=".$fileID, + $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."'."); + if (stExecSQL($sql) === false) + return stError("Failed to update file entry data."); + } + else + { + // Create new file entry + $sql = stPrepareSQL( + "INSERT INTO files (filename,origname,filetype,filesize,entry_id,uploader_id,utime) ". + "VALUES (%s,%s,%s,%d,%d,%d,%d)", + $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 ".$field."=%d WHERE id=%d", $fileID, $entry["id"]);