Import filename and upload improvements

This commit is contained in:
Tobias Reich 2014-01-31 23:55:16 +01:00
parent d71be1d3ce
commit 38ae4662ff
4 changed files with 44 additions and 28 deletions

View File

@ -38,4 +38,10 @@ If `1`, Lychee will check if you are using the latest version. The notice will b
sorting = ORDER BY [row] [ASC|DESC] sorting = ORDER BY [row] [ASC|DESC]
A typical part of an MySQL statement. This string will be appended to mostly every MySQL query. A typical part of an MySQL statement. This string will be appended to mostly every MySQL query.
#### Import Filename
importFilename = [0|1]
If `1`, Lychee will import the filename of the upload file.

View File

@ -93,7 +93,7 @@ function createDatabase($dbName, $database) {
function createTables($database) { function createTables($database) {
if (!$database->query("SELECT * FROM lychee_settings;")) { if (!$database->query("SELECT * FROM lychee_settings LIMIT 1;")) {
$query = " $query = "
@ -114,7 +114,8 @@ function createTables($database) {
('password',''), ('password',''),
('thumbQuality','90'), ('thumbQuality','90'),
('checkForUpdates','1'), ('checkForUpdates','1'),
('sorting','ORDER BY id DESC'); ('sorting','ORDER BY id DESC'),
('importFilename','1');
"; ";
@ -122,7 +123,7 @@ function createTables($database) {
} }
if (!$database->query("SELECT * FROM lychee_albums;")) { if (!$database->query("SELECT * FROM lychee_albums LIMIT 1;")) {
$query = " $query = "
@ -142,7 +143,7 @@ function createTables($database) {
} }
if (!$database->query("SELECT * FROM lychee_photos;")) { if (!$database->query("SELECT * FROM lychee_photos LIMIT 1;")) {
$query = " $query = "

View File

@ -79,14 +79,17 @@ function update() {
global $database; global $database;
if(!$database->query("SELECT `public` FROM `lychee_albums`;")) $database->query("ALTER TABLE `lychee_albums` ADD `public` TINYINT( 1 ) NOT NULL DEFAULT '0'"); if(!$database->query("SELECT `public` FROM `lychee_albums` LIMIT 1;")) $database->query("ALTER TABLE `lychee_albums` ADD `public` TINYINT( 1 ) NOT NULL DEFAULT '0'");
if(!$database->query("SELECT `password` FROM `lychee_albums`;")) $database->query("ALTER TABLE `lychee_albums` ADD `password` VARCHAR( 100 ) NULL DEFAULT ''"); if(!$database->query("SELECT `password` FROM `lychee_albums` LIMIT 1;")) $database->query("ALTER TABLE `lychee_albums` ADD `password` VARCHAR( 100 ) NULL DEFAULT ''");
if(!$database->query("SELECT `description` FROM `lychee_albums`;")) $database->query("ALTER TABLE `lychee_albums` ADD `description` VARCHAR( 1000 ) NULL DEFAULT ''"); if(!$database->query("SELECT `description` FROM `lychee_albums` LIMIT 1;")) $database->query("ALTER TABLE `lychee_albums` ADD `description` VARCHAR( 1000 ) NULL DEFAULT ''");
if($database->query("SELECT `password` FROM `lychee_albums`;")) $database->query("ALTER TABLE `lychee_albums` CHANGE `password` `password` VARCHAR( 100 ) NULL DEFAULT ''"); if($database->query("SELECT `password` FROM `lychee_albums` LIMIT 1;")) $database->query("ALTER TABLE `lychee_albums` CHANGE `password` `password` VARCHAR( 100 ) NULL DEFAULT ''");
if($database->query("SELECT `description` FROM `lychee_photos`;")) $database->query("ALTER TABLE `lychee_photos` CHANGE `description` `description` VARCHAR( 1000 ) NULL DEFAULT ''"); if($database->query("SELECT `description` FROM `lychee_photos` LIMIT 1;")) $database->query("ALTER TABLE `lychee_photos` CHANGE `description` `description` VARCHAR( 1000 ) NULL DEFAULT ''");
if($database->query("SELECT `shortlink` FROM `lychee_photos`;")) $database->query("ALTER TABLE `lychee_photos` DROP `shortlink`"); if($database->query("SELECT `shortlink` FROM `lychee_photos` LIMIT 1;")) $database->query("ALTER TABLE `lychee_photos` DROP `shortlink`");
$database->query("UPDATE `lychee_photos` SET url = replace(url, 'uploads/big/', ''), thumbUrl = replace(thumbUrl, 'uploads/thumb/', '')"); $database->query("UPDATE `lychee_photos` SET url = replace(url, 'uploads/big/', ''), thumbUrl = replace(thumbUrl, 'uploads/thumb/', '')");
$result = $database->query("SELECT `value` FROM `lychee_settings` WHERE `key` = 'importFilename' LIMIT 1;");
if ($result->fetch_object()!==true) $database->query("INSERT INTO `lychee_settings` (`key`, `value`) VALUES ('importFilename', '1')");
return true; return true;

View File

@ -11,7 +11,7 @@ if (!defined('LYCHEE')) exit('Error: Direct access is not allowed!');
function upload($files, $albumID) { function upload($files, $albumID) {
global $database; global $database, $settings;
switch($albumID) { switch($albumID) {
// s for public (share) // s for public (share)
@ -32,35 +32,41 @@ function upload($files, $albumID) {
} }
foreach ($files as $file) { foreach ($files as $file) {
if ($file['type']!=='image/jpeg'&&
$file['type']!=='image/png'&&
$file['type']!=='image/gif')
return false;
$id = str_replace('.', '', microtime(true)); $id = str_replace('.', '', microtime(true));
while(strlen($id)<14) $id .= 0; while(strlen($id)<14) $id .= 0;
$tmp_name = $file["tmp_name"]; $tmp_name = $file['tmp_name'];
$extension = array_reverse(explode('.', $file['name']));
$type = getimagesize($tmp_name); $extension = $extension[0];
if (($type[2]!=1)&&($type[2]!=2)&&($type[2]!=3)) return false; $photo_name = md5($id) . ".$extension";
$data = array_reverse(explode('.', $file["name"]));
$data = $data[0];
$photo_name = md5($id) . ".$data";
// Import if not uploaded via web // Import if not uploaded via web
if (!is_uploaded_file($tmp_name)) { if (!is_uploaded_file($tmp_name)) {
if (copy($tmp_name, "../uploads/big/" . $photo_name)) { if (copy($tmp_name, '../uploads/big/' . $photo_name)) {
unlink($tmp_name); unlink($tmp_name);
$import_name = $tmp_name; $import_name = $tmp_name;
} }
} else { } else {
move_uploaded_file($tmp_name, "../uploads/big/" . $photo_name); move_uploaded_file($tmp_name, '../uploads/big/' . $photo_name);
$import_name = ""; $import_name = '';
} }
// Read infos // Read infos
$info = getInfo($photo_name); $info = getInfo($photo_name);
// Use title of file if IPTC title missing
if ($info['title']===''&&
$settings['importFilename']==='1')
$info['title'] = mysqli_real_escape_string($database, substr(str_replace(".$extension", '', $file['name']), 0, 30));
// Set orientation based on EXIF data // Set orientation based on EXIF data
if (isset($info['orientation'])&&isset($info['width'])&&isset($info['height'])) { if ($file['type']==='image/jpeg'&&isset($info['orientation'])&&isset($info['width'])&&isset($info['height'])) {
if ($info['orientation']==3||$info['orientation']==6||$info['orientation']==8) { if ($info['orientation']==3||$info['orientation']==6||$info['orientation']==8) {
@ -259,8 +265,8 @@ function createThumb($filename, $width = 200, $height = 200) {
$info = getimagesize($url); $info = getimagesize($url);
$photoName = explode(".", $filename); $photoName = explode(".", $filename);
$newUrl = "../uploads/thumb/".$photoName[0].".jpeg"; $newUrl = "../uploads/thumb/$photoName[0].jpeg";
$newUrl2x = "../uploads/thumb/".$photoName[0]."@2x.jpeg"; $newUrl2x = "../uploads/thumb/$photoName[0]@2x.jpeg";
// Set position and size // Set position and size
$thumb = imagecreatetruecolor($width, $height); $thumb = imagecreatetruecolor($width, $height);