Como forçar um navegador a salvar um URL como um arquivo, em vez de exibi-lo no navegador. Sem instalar o software?

0

Eu preciso fornecer um processo para pessoas em um ambiente Windows corporativo rigidamente controlado, que não podem acessar o PowerShell ou instalar software do tipo wget, para baixar arquivos XML muito grandes de interfaces de servidor da Web que, por padrão, tentam exibir 50MB + arquivos XML no navegador. Isso iria travar seus navegadores.

Como esses arquivos podem ser baixados como arquivos, em vez de exibidos como uma página?

Eles têm software Windows comum, como o MS Office e navegadores comuns, e possuem o Notepad ++. Os arquivos serão processados através de outros serviços (somente para upload) para torná-los mais fáceis de gerenciar, antes de serem usados diretamente no Notepad ++, o que também causará problemas com os arquivos brutos.

    
por user568458 25.07.2016 / 00:42

2 respostas

1

Encontrei um truque usando o fato de que o Google Chrome recarrega as páginas quando tenta salvá-las.

  • Abra os links para as quantidades massivas de texto como URLs normais do Chrome
  • Aguarde até que o código comece a aparecer na tela e, em seguida, pressione o botão "Parar" do navegador
  • Clique com o botão direito do mouse. "Salvar como" já está disponível. Isso recarrega a página incompleta, usando a funcionalidade de download desde o início, em vez de tentar exibi-la no navegador

Outra opção que considerei como último recurso foi simplesmente criar um arquivo HTML que contenha apenas um link para a página, com o qual eles poderiam clicar com o botão direito do mouse e salvar. No entanto, eles podem estar sujeitos a restrições de segurança ao seguir um link de um arquivo HTML off-line.

<html>
<head>
    <title>Right-click the link</title>
    <style> a { display: block; height: 200px; width: 200px; margin: 30px; padding: 80px 0px; text-align: center; font-size: 2em; background: #eeeeee; } </style>
</head>
<body>
<a href="url-here.com">Right click and save this link</a>
</body>
</html>
    
por 25.07.2016 / 00:42
0

Os navegadores escolhem como processar um recurso baixado com base no Content-Type do recurso, conforme identificado na resposta http que o carregou (os navegadores também costumam inspecionar o conteúdo para descobrir o que é, se não houver conteúdo Digite o campo na resposta).

Portanto, é possível fazer com que um navegador solicite a gravação de qualquer recurso transferido, se você puder alterar o tipo de conteúdo da resposta. Um Content-Type no qual você pode confiar, fazendo com que um recurso seja salvo como um arquivo, é o tipo "application / octet-stream".

Você pode alterar o cabeçalho de resposta Content-Type das respostas http usando um servidor proxy. Vários servidores proxy podem reescrever cabeçalhos. Nosso produto WinGate oferece a capacidade de modificar cabeçalhos de resposta antes que a resposta seja enviada ao cliente. Também é gratuito para 10 usuários simultâneos, portanto, pode ser gratuito na sua situação.

Etapas:

  1. Primeiramente, você precisa instalar o proxy e definir os clientes para usá-lo. Se você já tem um proxy corporativo, pode ser necessário configurar o proxy WWW do WinGate para conectar-se através desse proxy.

  2. Em segundo lugar, a configuração para reescrever o cabeçalho. O WinGate possui um sistema de políticas GUI de fluxograma, no qual você arrasta elementos para o processamento de eventos.

O evento que você deseja processar é o evento ProxyResponse para o seu proxy WWW. No WinGate Management, você navegaria para o WinGate > Painel de controle > Política e clique na tarefa "Nova Política". Escolha Source Type: Any HTTPProxy e Event Type: ProxyResponse e dê um nome.

ClicaremOKabriráoeditordepolíticas.Arrasteoevento(porexemplo,WWWProxyServer:ProxyResponse)paraaplanilhanocantosuperioresquerdo,entãoarrasteumaListLookupCheckparaaplanilha,eleiráabrirumacaixadediálogodeedição,cliquenoengraçadobotãoSnocantosuperioresquerdo,eficaráassim,váatéRequest.URLecliqueemOK

Selecione"correspondência de padrão" para o método de correspondência e adicione um novo valor com a especificação de correspondência para os URLs para os quais você deseja alterar o tipo de conteúdo, com um curinga se precisar corresponder a um URL com consulta diferente strings.

cliqueemok,dêumnomeaeleeconecteesteitemaoEventoarrastandodoRHSdoeventoparaoitem.

Emseguida,arrasteumitemdoavaliadordeexpressãoparaaplanilha.DigiteovalorResponse.Headers.Set("Content-Type","application/octet-stream") , desmarque "resolver expresson em verdadeiro / falso ..."

Emseguida,conecteissoàsaídaYesdoitemdeverificaçãoList.CliquenobotãoSalvarnapartesuperioreéaovivo.

Suapolíticaseráparecidacomesta.

Agora, quando alguém solicita um URL que corresponda ao seu valor correspondente no item Verificar URL, ele será salvo como um arquivo.

Disclaimer: Eu trabalho para Qbik, que são os autores do WinGate

    
por 25.07.2016 / 14:57