Как показать файл в браузере вместо загрузки?
Я использую 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 ответ
Я понимаю, что мне нужно было удалить 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
}
}