r4152 commitAddFile(): dismiss "size" parameter and do the job on SQL server side
authorDenis Ovsienko <infrastation@yandex.ru>
Wed, 26 Jan 2011 13:54:45 +0000 (13:54 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Wed, 26 Jan 2011 13:54:45 +0000 (13:54 +0000)
addFileWithoutLink(): update respectively
addFileToEntity(): ditto

inc/database.php
inc/ophandlers.php

index d11957a..8a0c32c 100644 (file)
@@ -3401,23 +3401,20 @@ function getFileStats ()
        return $ret;
 }
 
-function commitAddFile ($name, $type, $size, $contents, $comment)
+function commitAddFile ($name, $type, $contents, $comment)
 {
-       $now = date('YmdHis');
-
        global $dbxlink;
-       $query  = $dbxlink->prepare('INSERT INTO File (name, type, size, ctime, mtime, atime, contents, comment) VALUES (?, ?, ?, ?, ?, ?, ?, ?)');
-       $query->bindParam(1, $name);
-       $query->bindParam(2, $type);
-       $query->bindParam(3, $size);
-       $query->bindParam(4, $now);
-       $query->bindParam(5, $now);
-       $query->bindParam(6, $now);
-       $query->bindParam(7, $contents, PDO::PARAM_LOB);
-       $query->bindParam(8, $comment);
        try
        {
-               return $query->execute();
+               $dbxlink->beginTransaction();
+               $query = $dbxlink->prepare ('INSERT INTO File (name, type, ctime, mtime, atime, contents, comment) VALUES (?, ?, NOW(), NOW(), NOW(), ?, ?)');
+               $query->bindParam (1, $name);
+               $query->bindParam (2, $type);
+               $query->bindParam (3, $contents, PDO::PARAM_LOB);
+               $query->bindParam (4, $comment);
+               $query->execute();
+               usePreparedExecuteBlade ('UPDATE File SET size = LENGTH(contents) WHERE id = ?', array (lastInsertID()));
+               $dbxlink->commit();
        }
        catch (PDOException $e)
        {
index e9f9053..96a07db 100644 (file)
@@ -2045,7 +2045,7 @@ function addFileWithoutLink ()
 
        $fp = fopen($_FILES['file']['tmp_name'], 'rb');
        global $sic;
-       if (FALSE === commitAddFile ($_FILES['file']['name'], $_FILES['file']['type'], $_FILES['file']['size'], $fp, $sic['comment']))
+       if (FALSE === commitAddFile ($_FILES['file']['name'], $_FILES['file']['type'], $fp, $sic['comment']))
                return buildRedirectURL (__FUNCTION__, 'ERR2');
        if (isset ($_REQUEST['taglist']))
                produceTagsForLastRecord ('file', $_REQUEST['taglist']);
@@ -2070,7 +2070,7 @@ function addFileToEntity ()
 
        $fp = fopen($_FILES['file']['tmp_name'], 'rb');
        global $sic;
-       if (FALSE === commitAddFile ($_FILES['file']['name'], $_FILES['file']['type'], $_FILES['file']['size'], $fp, $sic['comment']))
+       if (FALSE === commitAddFile ($_FILES['file']['name'], $_FILES['file']['type'], $fp, $sic['comment']))
                return buildRedirectURL (__FUNCTION__, 'ERR3');
        if (FALSE === usePreparedInsertBlade ('FileLink', array ('file_id' => lastInsertID(), 'entity_type' => $realm, 'entity_id' => $entity_id)))
                return buildRedirectURL (__FUNCTION__, 'ERR3');