다운로드하는 대신 브라우저에 파일을 표시하는 방법은 무엇입니까?


0

나는 Owncloud (Nginx 뒤에)를 사용하여 파일을 공유하고 있습니다. 공유 링크를 생성하면 링크가 나를 다운로드 페이지로 안내합니다. 또는 "& amp; 다운로드"를 추가하면 즉시 파일 다운로드가 시작됩니다.

내 필요는 Github의 "Raw file"옵션으로 브라우저에서 텍스트 파일을 제공하므로 그 파일을 다른 서비스 (예 : draw.io)의 입력으로 사용할 수 있습니다.

이 속성은 다음과 같이 자체 클라우드 속성이어야합니다. 이 사람이 묻는다. ,하지만 난 Nginx이 문제를 해결할 수있을 거라 생각 했어.

추가하는 것으로 다운로드하는 대신 브라우저에서 파일의 내용을 표시하도록 일부 헤더 또는 일부를 변경할 수 있습니까? /my-raw-command URL에?

예를 들어 원본 다운로드 URL이 다음과 같은 경우 : www.example.com/myfile.txt&download입력하면 브라우저에 표시되기를 원합니다. www.example.com/myfile.txt&download/my-raw-command

누군가 나에게 어떤 조언을 해주겠습니까?

답변:


0

내가 제거해야한다는 것을 이해합니다. Content-Disposition: ... 응답 헤더의 행 그것은 쉽기 때문에 OwnCloud의 PHP 코드를 편집 / 해킹하여 문제를 해결했습니다.

에서 lib/private/response.php 내가 바꾼 파일 setContentDispositionHeader 기능은 다음과 같습니다.

static public function setContentDispositionHeader( $filename, $type = 'attachment' ) {
    if (OC_Request::isUserAgent(array(
            OC_Request::USER_AGENT_IE,
            OC_Request::USER_AGENT_ANDROID_MOBILE_CHROME,
            OC_Request::USER_AGENT_FREEBOX
        ))) {
        header( 'Content-Disposition: ' . rawurlencode($type) . '; filename="' . rawurlencode( $filename ) . '"' );
    } else {
                    // cca-hack-id:make-raw-output-property ###
                    // cca-hack-id:make-raw-output-property ### I needed something like "raw" format of github.com. 
                    // cca-hack-id:make-raw-output-property ###
                    // cca-hack-id:make-raw-output-property ### Usage with an example: 
                    // cca-hack-id:make-raw-output-property ###   1. share a single file and get a public link (MY_PUBLIC_LINK) for the file. 
                    // cca-hack-id:make-raw-output-property ###   2. get the file's direct url (MY_PUBLIC_LINK&download)
                    // cca-hack-id:make-raw-output-property ###   3. append '&raw' to the url: MY_PUBLIC_LINK&download&raw
                    // cca-hack-id:make-raw-output-property ###
                    // cca-hack-id:make-raw-output-property ### If you want to undo this hack, remove all lines which contains 'cca-hack-id:make-raw-output-property' string. 
                    // cca-hack-id:make-raw-output-property ###

                    if (!array_key_exists('raw', $_GET)) {  // cca-hack-id:make-raw-output-property
                header( 'Content-Disposition: ' . rawurlencode($type) . '; filename*=UTF-8\'\'' . rawurlencode( $filename )
                                             . '; filename="' . rawurlencode( $filename ) . '"' );
        } // cca-hack-id:make-raw-output-property
    }
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.