Mercurial > hg > fapweb
changeset 869:2447673c5d04
Back to the original plan.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 26 Nov 2014 13:10:39 +0200 |
parents | 6829da58c17c |
children | b5176d174bf5 |
files | msite.inc.php |
diffstat | 1 files changed, 55 insertions(+), 52 deletions(-) [+] |
line wrap: on
line diff
--- a/msite.inc.php Wed Nov 26 12:46:11 2014 +0200 +++ b/msite.inc.php Wed Nov 26 13:10:39 2014 +0200 @@ -1050,57 +1050,6 @@ } -// -// File table entry adding -// -function stUpdateOrAddFileEntry($entry, $type, $origName, $fileSize, $fileExt, $fileType, $uploaderID) -{ - $field = (($type == "preview") ? "preview" : "file")."_id"; - - // Compute storage filename - $fileName = sprintf("%03d-%s--%s%s.%s", - $entry["id"], - stFilterPathComponent($entry["author"]), - stFilterPathComponent($entry["name"]), - ($type == "preview" ? "_preview" : ""), - $fileExt); - - 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 (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"]); - - if (stExecSQL($sql) === false) - return stError("Failed to update entry #".$entry["id"]." ".$type." ID ... :S"); - - // Return file entry - return stFetchSQL("SELECT * FROM files WHERE id=".$fileID); -} - - -// -// File upload handling -// function stFileError($userID, $adminMsg, $userMsg) { stErrorLog($adminMsg); @@ -1109,6 +1058,60 @@ } +// +// File table entry adding +// +function stAddFileEntry($entry, $type, $origName, $fileSize, $fileExt, $fileType, $uploaderID) +{ + $field = (($type == "preview") ? "preview" : "file")."_id"; + + // Create new file entry + $sql = stPrepareSQL( + "INSERT INTO files (origname,filetype,filesize,entry_id,uploader_id,utime) ". + "VALUES (%s,%s,%d,%d,%d,%d)", + $origName, $fileType, $fileSize, $entry["id"], $uploaderID, time()); + + if (($fileID = stExecSQLInsert($sql)) === false) + return stFileError($uploaderID, + "Failed to add new ".$type." file for entry #".$entry["id"]." '".$origName."'.", + "Internal error. Failed to add new file."); + + // Compute storage filename + $fileName = sprintf("%03d-%s--%s%s_(%d).%s", + $entry["id"], + stFilterPathComponent($entry["author"]), + stFilterPathComponent($entry["name"]), + ($type == "preview" ? "_preview" : ""), + $fileID, + $fileExt); + + // Update entry with generated filename + $sql = stPrepareSQL("UPDATE files SET filename=%s WHERE id=%d", $fileName, $fileID); + if (stExecSQL($sql) === false) + return stFileError($uploaderID, + "Failed to update newly created files entry #".$fileID." with generated filename '".$fileName."'!", + "Internal error. Failed to add new file."); + + // Update entry's reference + $sql = stPrepareSQL("UPDATE entries SET ".$field."=%d WHERE id=%d", $fileID, $entry["id"]); + if (stExecSQL($sql) === false) + return stFileError($uploaderID, + "Failed to update entry #".$entry["id"]." ".$type." ID!", + "Internal error. Failed to add new file."); + + // Return file entry + if (($res = stFetchSQL("SELECT * FROM files WHERE id=".$fileID)) === false) + return stFileError($uploaderID, + "Failed to fetch newly generated files entry #".$fileID, + "Internal error. Failed to add new file."); + + return $res; +} + + +// +// File upload handling +// function stHandleGenericFileUpload($userID) { global $errorSet; @@ -1231,7 +1234,7 @@ } // Update current or add new file entry - if (($fentry = stUpdateOrAddFileEntry($entry, $uploadType, $orgFilename, $fileSize, $fileExt, $fileInfo["id"], $userID)) === false) + if (($fentry = stAddFileEntry($entry, $uploadType, $orgFilename, $fileSize, $fileExt, $fileInfo["id"], $userID)) === false) return FALSE; // Set permissions before moving the file