X-Git-Url: https://git.plutz.net/?a=blobdiff_plain;f=attachment.sh;h=89b90ae2579a04dea091a01ac07de16f80454bb5;hb=f9cfcde441afed9d6db96e201935b6208903046d;hp=d004b0db549954f00575810169f6a6665c9357e3;hpb=9169267348bbe4cfc7923ca0d535d4eba89a734e;p=shellwiki diff --git a/attachment.sh b/attachment.sh index d004b0d..89b90ae 100755 --- a/attachment.sh +++ b/attachment.sh @@ -17,7 +17,7 @@ attachment_convert(){ elif [ -f "$cachepath" ]; then printf %s "$attpath" return 0 - elif ! touch "$cachepath"; then + elif ! mkdir -p -- "${cachepath%/*}" && touch "$cachepath"; then printf %s "$attpath" return 0 fi @@ -63,8 +63,13 @@ attachment_convert(){ if [ "${PATH_INFO%/\[attachment\]/}" != "${PATH_INFO}" ]; then . "$_EXEC/multipart.sh" if multipart_cache; then - debug 'Multipart "file":' - multipart file |hd |debug >/dev/null + mkdir -p "$_DATA/pages/${PATH_INFO%/\[attachment\]/}/#attachments/" + n=1; while filename=$(multipart_filename "file" "$n"); do + filename="$(printf %s "$filename" |tr /\\0 __)" + multipart "file" "$n" >"$_DATA/pages/${PATH_INFO%/\[attachment\]/}/#attachments/$filename" + n=$((n + 1)) + done + rm -- "$multipart_cachefile" REDIRECT "${_BASE}${PATH_INFO}" else theme_attachments "${PATH_INFO%\[attachment\]/}"