Como mostrar o arquivo no navegador em vez de baixar?

0

Estou usando o Owncloud (por trás do Nginx) para compartilhar um arquivo. Quando eu gero um link de compartilhamento, o link me aponta para a página de download ou se eu acrescentar "download", ele imediatamente inicia o download do arquivo.

Minha necessidade é, como a opção "Raw file" do Github, servir um arquivo de texto no navegador para que eu possa usar esse arquivo como uma entrada para um outro serviço (como draw.io)

Esta deve ser uma propriedade do próprio domínio como essa pessoa pede , mas eu pensei Eu posso contornar este problema com o Nginx.

Posso alterar alguns cabeçalhos ou algo assim para que um navegador mostre o conteúdo do arquivo em vez de baixá-lo adicionando /my-raw-command ao URL?

Por exemplo, se o URL de download original for este: www.example.com/myfile.txt&download , eu quero que ele seja mostrado no navegador se eu digitar www.example.com/myfile.txt&download/my-raw-command

Alguém me daria alguma dica para começar?

    
por ceremcem 12.11.2014 / 13:24

1 resposta

0

Entendo que precisei remover Content-Disposition: ... line dos cabeçalhos de resposta. Como foi mais fácil, resolvi o problema editando / hackeando o código PHP da OwnCloud.

No arquivo lib/private/response.php , mudei a função setContentDispositionHeader da seguinte forma:

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
    }
}
    
por 13.11.2014 / 02:01