aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorplegall <plg@piwigo.org>2008-10-05 21:22:57 +0000
committerplegall <plg@piwigo.org>2008-10-05 21:22:57 +0000
commitb53cddbf6ae1eb70170dd8a31e3cba879929797e (patch)
tree2ccc44d984766b06f849edbaf79666ca9b4afe99
parent0bdc6a5dac8ee12cf630b42e4a8d6a0be4116ae2 (diff)
feature 885 added: pwg.images.add web API method now supports additional
high resolution format. git-svn-id: http://piwigo.org/svn/trunk@2670 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to '')
-rw-r--r--include/ws_functions.inc.php45
-rw-r--r--tools/piwigo_remote.pl8
-rw-r--r--ws.php2
3 files changed, 50 insertions, 5 deletions
diff --git a/include/ws_functions.inc.php b/include/ws_functions.inc.php
index 31167e1ad..c2e8c1778 100644
--- a/include/ws_functions.inc.php
+++ b/include/ws_functions.inc.php
@@ -950,7 +950,7 @@ SELECT
// check dumped file md5sum against expected md5sum
$dumped_md5 = md5_file($file_path);
if ($dumped_md5 != $params['file_sum']) {
- return new PwgError(500, 'file transfert failed');
+ return new PwgError(500, 'file transfer failed');
}
// thumbnail directory is a subdirectory of the photo file, hard coded
@@ -980,11 +980,42 @@ SELECT
// check dumped thumbnail md5
$dumped_md5 = md5_file($thumbnail_path);
if ($dumped_md5 != $params['thumbnail_sum']) {
- return new PwgError(500, 'thumbnail transfert failed');
+ return new PwgError(500, 'thumbnail transfer failed');
}
- // fwrite($fh_log, 'output: '.md5_file($file_path)."\n");
- // fwrite($fh_log, 'output: '.md5_file($thumbnail_path)."\n");
+ // high resolution
+ if (isset($params['high_content']))
+ {
+ // high resolution directory is a subdirectory of the photo file, hard
+ // coded "pwg_high"
+ $high_dir = $upload_dir.'/pwg_high';
+ if (!is_dir($high_dir)) {
+ umask(0000);
+ mkdir($high_dir, 0777);
+ }
+
+ // high resolution path, same name as web size file
+ $high_path = sprintf(
+ '%s/%s.%s',
+ $high_dir,
+ $filename_wo_ext,
+ 'jpg'
+ );
+
+ // dump the high resolution file
+ $fh_high = fopen($high_path, 'w');
+ fwrite($fh_high, base64_decode($params['high_content']));
+ fclose($fh_high);
+ chmod($high_path, 0644);
+
+ // check dumped thumbnail md5
+ $dumped_md5 = md5_file($high_path);
+ if ($dumped_md5 != $params['high_sum']) {
+ return new PwgError(500, 'high resolution transfer failed');
+ }
+
+ $high_filesize = floor(filesize($high_path)/1024);
+ }
list($width, $height) = getimagesize($file_path);
@@ -1017,6 +1048,12 @@ SELECT
}
}
+ if (isset($params['high_content']))
+ {
+ $insert['has_high'] = 'true';
+ $insert['high_filesize'] = $high_filesize;
+ }
+
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
mass_inserts(
IMAGES_TABLE,
diff --git a/tools/piwigo_remote.pl b/tools/piwigo_remote.pl
index 776802589..f11e0d457 100644
--- a/tools/piwigo_remote.pl
+++ b/tools/piwigo_remote.pl
@@ -6,11 +6,12 @@ use warnings;
use JSON;
use LWP::UserAgent;
use Getopt::Long;
+use Encode qw/is_utf8 decode/;
my %opt = ();
GetOptions(
\%opt,
- qw/action=s file=s thumbnail=s categories=s define=s%/
+ qw/action=s file=s thumbnail=s high=s categories=s define=s%/
);
our $ua = LWP::UserAgent->new;
@@ -62,6 +63,11 @@ if ($opt{action} eq 'pwg.images.add') {
categories => $opt{categories},
};
+ if (defined $opt{high}) {
+ $form->{high_content} = encode_base64(read_file($opt{high}));
+ $form->{high_sum} = file_md5_hex($opt{high});
+ }
+
foreach my $key (keys %{ $opt{define} }) {
$form->{$key} = $opt{define}{$key};
}
diff --git a/ws.php b/ws.php
index 0c63e0fb5..6c0ce26ad 100644
--- a/ws.php
+++ b/ws.php
@@ -180,6 +180,8 @@ function ws_addDefaultMethods( $arr )
'file_sum' => array(),
'thumbnail_content' => array(),
'thumbnail_sum' => array(),
+ 'high_content' => array('default' => null),
+ 'high_sum' => array('default' => null),
'name' => array('default' => null),
'author' => array('default' => null),
'date_creation' => array('default' => null),