Replies: 1 comment 1 reply
-
|
This happens in https://github.com/LycheeOrg/Lychee/blob/master/app/Actions/Album/BaseArchive.php // Generate name for file inside the ZIP archive
$file_base_name = $this->makeUnique(self::createValidTitle($photo->title), $used_file_names);
$file_name = $full_name_of_directory . '/' . $file_base_name . $file->getExtension();With /**
* Creates a title which only contains valid characters.
*
* Removes all invalid characters from the given title.
* If the title happens to become the empty string after removing all
* illegal characters, the fixed string 'Untitled' is returned.
*
* @param string $title the title with possibly invalid characters
*
* @return string the title without any invalid characters
*/
private static function createValidTitle(string $title): string
{
$valid_title = str_replace(self::BAD_CHARS, '', $title);
$valid_title = pathinfo($valid_title, PATHINFO_FILENAME);
return $valid_title !== '' ? $valid_title : 'Untitled';
}The last part
I am not opposed to changes in that section, but it must be considered that some photo titles have the extension already (from the import) and what we don't want when downloading is files such as: |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Lychee version
v6.9.2
Did you check the latest Lychee version?
Yes, I did
Which PHP version are you using?
PHP 8.4
Detailed description of the problem
When downloading files as a zip package, the album names and image filenames lose the last "." and everything after it.
For Example:
Original Album:
example-album
|-No.001
| |-pic.01
| |-pic.02
| |-pic.03
|-No.002
| |-pic.01
| |-pic.02
| |-pic.03
|-No.003
| |-pic.01
| |-pic.02
| |-pic.03
After download:
example-album
|-No
| |-pic
| |-pic-1
| |-pic-2
|-No-1
| |-pic
| |-pic-1
| |-pic-2
|-No-2
| |-pic
| |-pic-1
| |-pic-2
Steps to reproduce the issue
Just download an album which have a sub album or file named with '.'.
Diagnostics [REQUIRED]
version: 060902
check_for_updates: 1
sorting_photos_col: title
sorting_photos_order: ASC
sorting_albums_col: title
sorting_albums_order: ASC
imagick: 1
skip_duplicates: 1
small_max_width: 0
small_max_height: 360
medium_max_width: 1920
medium_max_height: 1080
lang: zh_CN
image_overlay_type: desc
default_license: none
compression_quality: 90
grants_full_photo_access: 1
delete_imported: 0
mod_frame_enabled: 1
mod_frame_refresh: 30
thumb_2x: 1
small_2x: 1
medium_2x: 1
landing_page_enable: 0
search_public: 0
hide_version_number: 0
recent_age: 2
grants_download: 0
photos_wraparound: 1
map_display: 0
zip64: 1
map_display_public: 0
map_provider: Wikimedia
map_include_subalbums: 0
update_check_every_days: 3
has_exiftool: 1
share_button_visible: 0
import_via_symlink: 0
has_ffmpeg: 1
location_decoding: 0
location_decoding_timeout: 30
location_show: 0
location_show_public: 0
rss_enable: 0
rss_recent_days: 7
rss_max_items: 100
prefer_available_xmp_metadata: 0
editor_enabled: 1
lossless_optimization: 0
local_takestamp_video_formats: .avi|.mov
log_max_num_line: 1000
unlock_password_photos_with_url_param: 0
nsfw_visible: 1
nsfw_blur: 1
nsfw_warning: 0
nsfw_warning_admin: 0
nsfw_banner_override:
map_display_direction: 1
album_subtitle_type: oldstyle
upload_processing_limit: 12
new_photos_notification: 0
zip_deflate_level: 6
default_album_protection: 1
album_decoration: layers
album_decoration_orientation: row
allow_username_change: 1
auto_fix_orientation: 0
random_album_id: starred
use_last_modified_date_when_no_exif_date: 0
layout: justified
date_format_photo_thumb: M j, Y, g:i:s A e
date_format_photo_overlay: M j, Y, g:i:s A e
date_format_sidebar_uploaded: M j, Y, g:i:s A e
date_format_sidebar_taken_at: M j, Y, g:i:s A e
date_format_hero_min_max: F Y
date_format_hero_created_at: M j, Y, g:i:s A T
date_format_album_thumb: M Y
upload_chunk_size: 0
nsfw_banner_blur_backdrop: 1
search_pagination_limit: 300
search_minimum_length_required: 2
photo_layout_justified_row_height: 320
photo_layout_masonry_column_width: 300
photo_layout_grid_column_width: 250
photo_layout_square_column_width: 200
photo_layout_gap: 12
display_thumb_album_overlay: always
display_thumb_photo_overlay: hover
default_album_thumb_aspect_ratio: 1/1
use_album_compact_header: 0
back_button_enabled: 1
back_button_text: Return to Home
SA_random_thumbs: 0
login_required: 0
enable_unsorted: 1
enable_starred: 1
enable_recent: 1
enable_on_this_day: 1
login_required_root_only: 1
dark_mode_enabled: 1
show_keybinding_help_popup: 0
show_keybinding_help_button: 1
disable_se_call_for_actions: 0
enable_se_preview: 0
slideshow_timeout: 5
keep_original_untouched: 1
low_quality_image_placeholder: 1
timeline_photos_enabled: 0
timeline_photos_public: 0
timeline_photos_granularity: day
timeline_photos_order: taken_at
timeline_photos_layout: square
timeline_photos_pagination_limit: 200
timeline_albums_enabled: 0
timeline_albums_public: 0
timeline_albums_granularity: year
timeline_left_border_enabled: 1
timeline_photo_date_format_year: Y
timeline_photo_date_format_month: M Y
timeline_photo_date_format_day: j M Y
timeline_photo_date_format_hour: g:i
timeline_album_date_format_year: Y
timeline_album_date_format_month: M Y
timeline_album_date_format_day: j M
hide_nsfw_in_smart_albums: 0
hide_nsfw_in_frame: 1
hide_nsfw_in_map: 1
hide_nsfw_in_search: 0
search_photos_layout: square
hide_nsfw_in_rss: 1
hide_nsfw_in_timeline: 0
number_albums_per_row_mobile: 3
cache_enabled: 1
cache_ttl: 86400
low_number_of_shoots_per_day: 10
medium_number_of_shoots_per_day: 50
high_number_of_shoots_per_day: 100
maintenance_processing_limit: 5000
disable_recursive_permission_check: 1
exif_disabled_for_all: 0
file_name_hidden: 0
client_side_favourite_enabled: 0
default_old_settings: 0
default_expert_settings: 0
default_all_settings: 0
disable_thumb_download: 1
disable_thumb2x_download: 1
disable_small_download: 0
disable_small2x_download: 0
disable_medium_download: 0
disable_medium2x_download: 0
temporary_image_link_enabled: 0
temporary_image_link_when_logged_in: 0
temporary_image_link_when_admin: 0
temporary_image_link_life_in_seconds: 86400
secure_image_link_enabled: 0
SA_override_visibility: 0
TA_override_visibility: 0
enable_colour_extractions: 0
colour_extraction_driver: farzai
home_page_default: gallery
gallery_header_enabled: 0
gallery_header_logged_in_enabled: 0
gallery_header:
gallery_header_bar_transparent: 1
gallery_header_bar_gradient: 1
import_via_url_forbidden_localhost: 1
import_via_url_forbidden_local_ip: 1
import_via_url_require_https: 1
import_via_url_forbidden_ports: 1
flow_enabled: 1
flow_public: 0
flow_base:
flow_max_items: 10
flow_strategy: auto
flow_include_sub_albums: 0
flow_include_photos_from_children: 0
flow_open_album_on_click: 0
flow_display_open_album_button: 0
flow_highlight_first_picture: 1
flow_min_max_enabled: 1
flow_display_statistics: 1
flow_compact_mode_enabled: 1
flow_image_header_enabled: 1
flow_image_header_cover: cover
flow_image_header_height: 24
flow_carousel_enabled: 1
flow_carousel_height: 6
date_format_flow_published: M j, Y, g:i:s A e
date_format_flow_min_max: F Y
flow_blur_nsfw_enabled: 1
hide_nsfw_in_flow: 1
skip_duplicates_early: 1
sync_delete_missing_photos: 0
sync_delete_missing_albums: 0
sync_dry_run: 1
is_scroll_to_navigate_photos_enabled: 1
is_swipe_vertically_to_go_back_enabled: 1
details_links_enabled: 0
details_links_public: 0
photo_thumb_tags_enabled: 0
hide_nsfw_in_tag_albums: 1
hide_nsfw_in_tag_listing: 1
sorting_pinned_albums_col: created_at
sorting_pinned_albums_order: DESC
copyright_text:
timeline_page_enabled: 1
timeline_quick_access_date_format_year: Y
timeline_quick_access_date_format_month: M
timeline_quick_access_date_format_day: j M
timeline_quick_access_date_format_hour: h M, g:i
watermark_enabled: 0
watermark_photo_id:
watermark_public: 1
watermark_logged_in_users_enabled: 0
renamer_enabled: 0
renamer_enforced: 0
renamer_enforced_before: 0
renamer_enforced_after: 0
renamer_photo_title_enabled: 1
renamer_album_title_enabled: 1
extract_zip_on_upload: 1
Browser & System [REQUIRED]
Firefox & windows11
Please confirm (incomplete submissions will not be addressed)
Beta Was this translation helpful? Give feedback.
All reactions