Q&A

자동 삽입된 첨부이미지를 다운로드 하게 하는 링크 생성하는 방법 문의

2023.08.18 03:31
311
0
CMS/프레임워크 Rhymix 2.1
개발 언어 PHP 7.4

안녕하세요.

 

첨부한 사진이 자동삽입된 이미지를 바로 내려받을 수 있는 버튼을 만들고 싶습니다.

 

우선 파일 명을 alt 기반으로 가져오는것은 간단하게 만들었습니다.

 

간단.JPG

 

이제 저 사진파일명을 클릭하면 첨부파일이 다운로드 되게끔 만들어 주고싶은데요.

 

index.php?module=file&act=procFileDownload&file_srl=123456&sid=파일명

 

으로 첨부가 구성되어 잇는것 같습니다. 

file_srl

값은 img 정보에 포함되어있는것 같은데

sid 값은 어떻게 구해야 할까요?

 

index.php?module=file&act=procFileDownload&file_srl=123456

이까지만 링크를 넣어보았는데

다운로드가 되지 않고 요청한 파일을 찾을 수 없습니다.의 에러가 발생합니다.

 

<img alt="첨부된파일제목" data-file-srl="123456" editor_component="image_link" src="/files/attach/images/2023/08/주소.jph" data-pswp-pid="1">

 

이값만 가지고 첨부파일 다운로드 링크를 만들어 줄 수 있을까요?

 

data-pswp-pid="1" 를 통해 첨부에 배열된 링크 첫번째 링크를 가져와라 뭐 이런식으로 활용하는 것일까요?

 

감사합니다.

톰캣 Lv. 11
시대의 흐름에 뒤떨어지지 않도록 아주 천천히지만 노력하고 있습니다.

댓글 14

  • 2023.08.18 04:11 #1781074
    무단 다운로드를 막기 위해서 sid 값을 확인을 하게 되어있습니다
    sid 값은 files 테이블에서 조회하면 나올거예요

    흔히 쓰는 file_list 같은 변수에서는 sid 값이안 나올겁니다
    그 sid 값을 다 조합해서 download_url 이라는 값으로 전달을 하고 있어서
    ( 그런데 download_url 을 보통 전달해줄텐데.. 이를 이용하면 되지 않나요? )
  • 2023.08.18 12:52 #1781194

    사실은 src 값을 다운로드하면 되긴되는건데 조금 다른 상황입니다.

     

    이미지 프로세스 모듈로 화질을 저하시킨 파일을 출력시키고

     

    실제 파일 다운로드 버튼을 누르면 원본파일이 다운로드 되게끔 만들려고해서요.

    자바스크립트로 files테이블의 sid 값을 불러오는것도 보안상 참.. 애매하고

    이미 html 결과값이 나온걸로 첨부 url 값을 찾는것은 사실상 불가능에 가깝나보네요.

  • 2023.08.18 04:21 #1781078

    index.php?module=file&act=procFileDownload&file_srl=123456&sid=SID 값

     

    으로 해보시면 되실듯합니다, 라이믹스 아직 초보라 확인이 힘듭니다 ㅠ

  • 2023.08.18 12:54 #1781199
    요건 본문에도 적혀있습니다 ㅠㅠ
  • 2023.08.18 04:41 #1781089

    getModel('file')->getFile($file_srl);

    에서 확인해보시기 바랍니다.

    아마

    $sid=getModel('file')->getFile($file_srl)->sid;

    하면 나오지 않을까 싶습니다.

  • 2023.08.18 06:39 #1781122
    https://github.com/rhymix/rhymix/pull/1296
    라이믹스는 getModel할 필요 없이 FileModel::getFile($file_srl)와 같이 사용 가능합니다.
  • 2023.08.18 12:55 #1781203
    이미 html 화 된 파일을 자바스크립트로 alt 값을 불러와서 파일명을 넣어주고 data-file-srl 값으로 불러온거라서

    php 단계는 이미 지나간것같습니다.
  • 2023.08.18 06:39 #1781118
    FileModel::getFile($file_srl)->download_url
    그냥 위와 같이 불러오시면 설정에 따라 알아서 다운로드 주소를 가져옵니다.
  • 2023.08.18 06:45 #1781127

    YJSoft 님 감사합니다.

     

    act 값을 가져오고 값을 표시하는건 자바로 만들어서

    값링크도 자바로 걸어주고 있습니다.


    혹시 애드온에서
    PHP 값을 와서 Java 변수에 할당해주려면

    $sid = FileModel::getFile($file_srl)->download_url

    로하면될런지요?

     

    근데 이것또한 첨부파일 이미지별로 해주어야 할텐데 방법이 있을까요?

  • 2023.08.18 06:54 #1781134
    자바가 아니라 자바스크립트 말씀이신거죠?

    그리고 download_url 자체가 주소라서 별도 가공없이 출력하셔도 되긴할텐데 굳이 sid만 따로 가져와서 가공하신다면

    $sid = "{FileModel::getFile($file_srl)->sid}";
    처럼 작성하시면 자바스크립트 변수 $sid에 sid가 저장됩니다.
  • 2023.08.18 07:39 #1781154

    답변 감사합니다.

    곰곰히 생각해보면
    지금은 자바스크립트에서 html 의 data-file-srl 경로값으로 파일을 구분해주었는데
    이미 php에서 처리가 된 이후인 상황이 아닐까요?

    rx_documents의 content에 이미

    <p><img alt="DSC1234.JPG" data-file-srl="1234" editor_component="image_link" src="/files/attach/images/2023/08/주소값.jpg" /></p>

    저장된 이값을 가져와서 alt="DSC1234.JPG"의 DSC1234.JPG를 추출하고

    오리지널 링크를 찾아야 하는상황인데 이게 자바스크립트나 애드온에서 가능한것일까요?

  • 2023.08.18 07:47 #1781159

     

    제가 생각한 방법은 이거 거든요.

     

    결국 file_srl값으로 링크주소를 찾으려고해도 다시 그전의 php 값에서 가져와야하는상태인거네요.

     

    이미 첨부파일은 배열로 나열되어있을텐데 그 배열에서 동일한 값을 찾는다거나 이것도 자바에서 처리가 될지 모르겠네요.

  • 2023.08.18 07:52 #1781164

    아니면 첨부되어있는 첨부리스트 배열을 받아와서 자바스크립트 변수로 주는 방법은 혹시 있을까요?

     

     

                <li loop="$oDocument->getUploadedFiles()=>$key,$file">
                    <a href="{getUrl('')}{$file->download_url}" >{$file->source_filename}</a>
                </li>

     

    실제 게시판에서 반복되는 배열을 이것으로 보여지는데 순서는 분명 다를것이고 

  • 2023.08.18 13:00 #1781207
    결론적으로 html파일에서구한 $file_srl 이값을 자바스크립트에서는 $file_srl 이값을 출력할 수 있는데 이 구한값을 다시 php로 어떻게 넘기느냐가 관건일것 같네요.