diff options
author | plegall <plg@piwigo.org> | 2008-09-25 23:01:35 +0000 |
---|---|---|
committer | plegall <plg@piwigo.org> | 2008-09-25 23:01:35 +0000 |
commit | d04fd1d44ef631d69098c007dd3706df04a7f73b (patch) | |
tree | f13d8638708961545d66280ffcf277e21b9982c5 | |
parent | 9ebc3be5bd594781cec6a4322103fb5af92d311c (diff) |
feature 868 added: pwg.images.add checks if the same file has not alread
been uploaded.
git-svn-id: http://piwigo.org/svn/trunk@2592 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to '')
-rw-r--r-- | include/ws_functions.inc.php | 13 | ||||
-rw-r--r-- | install/db/78-database.php | 46 | ||||
-rw-r--r-- | install/piwigo_structure.sql | 1 |
3 files changed, 60 insertions, 0 deletions
diff --git a/include/ws_functions.inc.php b/include/ws_functions.inc.php index f125515c6..82635a213 100644 --- a/include/ws_functions.inc.php +++ b/include/ws_functions.inc.php @@ -902,6 +902,18 @@ function ws_images_add($params, &$service) // fwrite($fh_log, 'input: '.$params['file_sum']."\n"); // fwrite($fh_log, 'input: '.$params['thumbnail_sum']."\n"); + // does the image already exists ? + $query = ' +SELECT + COUNT(*) AS counter + FROM '.IMAGES_TABLE.' + WHERE md5sum = \''.$params['file_sum'].'\' +;'; + list($counter) = mysql_fetch_row(pwg_query($query)); + if ($counter != 0) { + return new PwgError(500, 'file already exists'); + } + // current date list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();')); list($year, $month, $day) = preg_split('/[^\d]/', $dbnow, 4); @@ -986,6 +998,7 @@ function ws_images_add($params, &$service) 'filesize' => floor(filesize($file_path)/1024), 'width' => $width, 'height' => $height, + 'md5sum' => $params['file_sum'], ); $info_columns = array( diff --git a/install/db/78-database.php b/install/db/78-database.php new file mode 100644 index 000000000..7ab247512 --- /dev/null +++ b/install/db/78-database.php @@ -0,0 +1,46 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +if (!defined('PHPWG_ROOT_PATH')) +{ + die('Hacking attempt!'); +} + +$upgrade_description = 'Add images.md5sum column, for web API uploaded photos'; + +// +-----------------------------------------------------------------------+ +// | Upgrade content | +// +-----------------------------------------------------------------------+ + +$query = 'ALTER TABLE '.IMAGES_TABLE.' add column `md5sum` char(32) default NULL'; +pwg_query($query); + +$upgrade_description = $query; + +echo +"\n" +.'"'.$upgrade_description.'"'.' ended' +."\n" +; + +?> diff --git a/install/piwigo_structure.sql b/install/piwigo_structure.sql index 1ba00ca62..f4519839c 100644 --- a/install/piwigo_structure.sql +++ b/install/piwigo_structure.sql @@ -193,6 +193,7 @@ CREATE TABLE `piwigo_images` ( `storage_category_id` smallint(5) unsigned default NULL, `high_filesize` mediumint(9) unsigned default NULL, `level` tinyint unsigned NOT NULL default '0', + `md5sum` char(32) default NULL, PRIMARY KEY (`id`), KEY `images_i2` (`date_available`), KEY `images_i3` (`average_rate`), |