Я использую Owncloud (за Nginx), чтобы поделиться файлом. Когда я создаю ссылку для общего доступа, она указывает на страницу загрузки или, если я добавляю «& загрузить», она сразу начинает скачивать файл.

Мне нужно, чтобы опция Github "Raw file" предоставляла текстовый файл в браузере, поэтому я могу использовать этот файл в качестве входных данных для другой службы (например, draw.io)

Это должно быть свойство owncloud, как этого требует человек, но я подумал, что могу обойти эту проблему с Nginx.

Могу ли я изменить некоторые заголовки или что-то еще, чтобы браузер отображал содержимое файла вместо загрузки, добавив /my-raw-command к URL?

Например, если исходный URL-адрес для загрузки является следующим: www.example.com/myfile.txt&download , я хочу, чтобы он отображался в браузере, если я www.example.com/myfile.txt&download/my-raw-command

Кто-нибудь даст мне какие-нибудь советы для начала?

1 ответ1

0

Я понимаю, что мне нужно было удалить строку Content-Disposition: ... из заголовков ответа. Поскольку это было проще, я решил проблему, отредактировав / взломав PHP-код OwnCloud.

В файле 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
    }
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .