Safari에서 이미지를 업로드할 수 없습니다

약 한 달 전부터 디스커스에 그래픽 파일을 업로드할 수 없게 되었습니다. 작성 영역 아래에 일반적인 진행 정보가 표시됩니다(20%, 40%, 100% 업로드 완료). 하지만 진행이 끝나면 작성 영역에는 다음과 같은 내용이 표시됩니다(모든 것이 보이도록 미리 형식 지정된 텍스트로 입력했습니다):

[Uploading: Screen Shot 2022-06-14 at 10.58.16 AM.png…]()

그리고 동일한 항목에 대한 완료 메시지 영역에는 다음과 같이 표시됩니다:

Uploading: Screen Shot 2022-06-14 at 10.58.16 AM.png…

하지만 그 시점에는 더 이상 업로드 활동이 진행 중이지 않습니다. 분명히 괄호 안에 있어야 할 내용이 업로드되지 않고 있습니다. 몇 시간 동안 기다려도 아무런 변화가 없습니다.

이 문제는 macOS v10.15.7이 설치된 Mac에서 Safari 버전 15.5(15613.2.7.1.9, 15613)를 사용할 때 발생합니다. 같은 컴퓨터에서 Firefox를 통해 디스커스에 접근하면 모든 기능이 정상적으로 작동합니다.

1개의 좋아요

이 문제가 발생할 때 브라우저 DevTools 콘솔에 무언가가 표시됩니까?

1개의 좋아요

Safari에서 활성화된 확장 프로그램이 있나요? 임시로 비활성화해 볼 수 있을까요?

저는 그 부분에 대해 초보입니다. 어디서 확인해야 하는지 조언해 주십시오. 제 Safari 버전에서는 상단 바에 Develop 메뉴 항목만 보입니다.

아니요. 그냥 표준 설치 상태입니다.

네, 바로 그것입니다! 이 YouTube의 랜덤한(?) 영상이 콘솔에 접근하는 방법을 다루고 있는 것 같습니다. https://www.youtube.com/watch?v=kRRK3hZGw7I

2개의 좋아요

죄송하지만 그 영상은 제작이 너무 엉망이라 따라가기 어려웠습니다. 그래도 "Console"을 찾은 것 같습니다. 현재 Safari에서 작성 중인 메시지에 Joss-Main이라는 이름의 JPG 이미지를 업로드하려고 하면 다음과 같은 결과가 나타납니다:

Uploading: Joss-Main.jpg…

Firefox로 로그인하여 같은 주제에서 계속 진행하면, Safari Console 창을 캡처한 스크린샷을 업로드할 수 있습니다. Console 창에 표시된 모든 내용은 Safari에서 해당 이미지를 작성 영역으로 드래그한 후에 나타났습니다. 보시다시피, 스크린샷 이미지는 Firefox에서 정상적으로 업로드됩니다:

이 문제를 해결하는 데 도움을 주기 위해 제가 더 해볼 수 있는 것이 있을까요?

1개의 좋아요

매우 최신 브라우저를 사용 중이시라면 여기서 재현을 시도해 볼 수 있습니다. 해당 문제를 내부적으로 기술 담당자에게 배정하여, 다른 사람들도 Safari 15.5에서 문제를 재현할 수 있는지 확인하도록 하겠습니다. 현재는 브라우저스택에서도 테스트조차 불가능할 정도로 최신 버전이지만, 100% 지원되는 환경입니다.

문제가 발생하는 이미지를 여기에 업로드해 주시겠어요? 아니면 모든 이미지에서 문제가 발생하나요?

2개의 좋아요

시도해 본 모든 이미지에서 해당 문제가 발생합니다. PNG, JPG, PDF 등 파일 형식이나 크기는 관계없습니다.

2개의 좋아요

커뮤니티 멤버들도 동일한 문제를 겪고 있습니다. 사파리가 주된 원인인 것 같으니, 문제를 찾아서 알려드리겠습니다.

1개의 좋아요

@Noah 님, 진전이 있었나요?

간단한 재현 방법을 시도해 보았지만, 아직까지 재현에 성공하지 못했습니다. 비슷한 문제가 ClearURL 브라우저 확장 프로그램 때문인 것으로 드러난 다른 게시글이 있었지만, 여기에는 도움이 될지 모르겠네요? MacOS Firefox image upload error - #16 by jimkleiber

4개의 좋아요

제 문제와 @jimkleiber 님이 보고한 문제 사이에는 몇 가지 주요한 차이가 있습니다:

  • @jimkleiber 님의 문제는 Firefox에서 발생했습니다. 제 경우 Firefox는 정상적으로 작동합니다.
  • @jimkleiber 님은 결국 문제가 된 것으로 확인된 브라우저 확장 프로그램이 설치되어 있었습니다. 저는 그런 확장 프로그램이 없습니다.
  • @jimkleiber 님은 오류 메시지를 확인했습니다. 제 경우, Discourse는 이미지 업로드가 성공적으로 완료된 것처럼 동작합니다.
2개의 좋아요

안녕하세요 @JammyDodger, 늦게 답장드려서 죄송합니다. 제 친구의 Safari 버전에서 테스트를 해보려고 하는데, 뭔가 나올지 확인해볼 겁니다. @tut 궁금한 건데, 어떤 기기를 사용 중이신가요?

1개의 좋아요

Screen Shot 2022-07-13 at 3.15.04 PM

수명 주기가 거의 끝난 기기이므로 macOS v10.15.7로 제한됩니다.

오 @david, [BUG] Share > Copy link broken in Safari · Issue #1716 · opensearch-project/OpenSearch-Dashboards · GitHub 에 언급된 대로 execCommand 관련 문제인 것 같습니다.

제 추측으로는 이 버전의 Safari에서 해당 API에 버그가 있는 것 같습니다. 이 API가 "비추천(deprecated)"으로 지정되어 있어서 브라우저들이 이를 약간 깨뜨리는 경향이 있어 온갖 문제를 일으키고 있는 것 같습니다.

업로드 플레이스홀더에서 URL로 전환할 때 execCommand를 사용하지 않으므로, 이것이 원인이 아닐 것 같습니다. (execCommand("insertText")는 textarea가 포커스를 받아야 하므로, textarea에 포커스가 없는 상태에서 업로드가 완료되는 경우에도 쉽게 전환할 수 없기 때문입니다.)

업로드는 여러 해 동안 사용해 온 set("value", ...) 메서드를 여전히 사용하고 있습니다

기술적으로는 웹 표준에서 비추천으로 지정되었지만, insertText 명령에 대한 대체 수단은 아직 없습니다. MDN 문서에 따르면:

클립보드 API는 많은 경우 execCommand 대신 사용할 수 있지만, execCommand는 여전히 유용한 경우가 있습니다. 특히 클립보드 API는 insertText 명령을 대체하지 않으며, 이 명령을 사용하면 일반 textarea와 input 요소에서 커서 위치의 텍스트를 프로그래매틱으로 대체하면서 실행 취소 버퍼(편집 이력)를 유지할 수 있습니다.

이처럼 널리 사용되고 있는 점을 고려할 때, 브라우저가 대체 수단을 제공하고 비추천 기간을 거치지 않고 이를 지원 중단할 가능성은 극히 낮아 보입니다.

4개의 좋아요

@tut Meta에서 무슨 일이 일어나고 있는지 파악해 보려고 여기에서 추가 디버깅 정보를 추가했습니다. 다음을 시도해 주시겠어요?

  1. Safari에서 Meta를 엽니다
  2. 개발자 콘솔을 엽니다
  3. 파일을 업로드해 봅니다
  4. 개발자 콘솔을 클릭합니다
  5. Cmd + a를 눌러 모든 로그를 선택합니다
  6. 마우스 오른쪽 버튼 클릭 → 선택 항목 저장
  7. 텍스트 파일을 어딘가에 저장한 후, 여기에 업로드합니다(아마 Firefox를 사용하게 되겠네요)
2개의 좋아요

@david, Safari에서 Joss-Main.jpg라는 JPEG 이미지를 업로드하려는 제 시도는 다음과 같습니다:

Uploading: Joss-Main.jpg…

예상대로 업로드가 완료되지 않았습니다.


이제 Firefox로 전환하여 동일한 메시지를 작성하는 것을 계속했습니다.

Console.txt (4.1 KB)

1개의 좋아요

오, 이건 좀 이상하네요! Safari가 ... (세 개의 마침표)를 생략부호 문자 …로 대체하고 있습니다. 그 결과 나중에 플레이스홀더를 실제 URL로 대체하려는 시도가 깨져버립니다.

@tut 시스템 환경설정 → 키보드 → 텍스트를 열어보시고, 거기에 대체 설정이 있는지 확인해 주시겠어요? 제가 ... → … 대체 설정을 추가하면, 제 기기의 Safari에서도 동일한 문제를 재현할 수 있습니다:

(오래된 macOS 버전을 사용 중이시기 때문에 화면이 약간 다를 수 있습니다)

네, 꽤 그럴 가능성이 높아 보입니다. @sam, 전에 그 아이디어를 무시한 것 죄송합니다 :sweat_smile:. Safari가 execCommand("insertText",를 통해 우리가 추가하는 텍스트에 OS 수준의 텍스트 대체를 적용하는 것 같습니다. 이것이 Safari 15.5에서 새로 생긴 것인지, 아니면 원래 그랬는데 우리가 모르고 있었던 것인지 궁금하네요 :thinking:

5개의 좋아요

@david, 키보드 설정에서 그런 치환을 설정해 두지 않았습니다. 하지만 이제 무엇을 찾아봐야 하는지 알게 되었기 때문에, 치환이 실제로 일어나고 있음을 확인할 수 있습니다. 실제로 타이핑하는 동안 그 과정이 눈에 보입니다. 그리고 뒤로가기 화살표를 사용해 확인해 볼 수도 있습니다. 생략 부호(…) 문자에 도달하면, 커서가 개별 문자로 입력되었던 세 개의 마침표 전체를 거슬러 올라갑니다.

같은 일이 메모, 미리보기, 메시지, 메일에서는 일어나지만, 캘린더, 지도, 사진, 또는 (당연히) 파이어폭스에서는 일어나지 않습니다. 따라서 이것은 시스템 수준의 문제가 아니라 앱에 특정한 문제인 것 같습니다.

2개의 좋아요