Thursday 13 July 2017

Opções De Conteúdo Disposição Binária


Estou tentando exibir um PDF no navegador, se possível - e eu sei que posso fazer isso no Chrome, que é o que estou testando dentro O problema é que, toda vez que eu tento, ele solicita um download em vez disso. Estou usando sessões PHP, então eu sei que existem alguns cabeçalhos estranhos sendo enviados, então eu chamei headerremove () para redefinir tudo. Eu chamo esta função para mostrar o PDF: Estes são os cabeçalhos sendo enviados: Seu ainda pedindo um download embora. Uma vez que os downloads, eu posso abri-lo no Adobe Reader muito bem. Estou faltando alguma coisa MarcB: O usuário tem as duas opções, mas o cliente quer que ele seja visível a partir do navegador. Posso acessar PDFs diretamente no meu navegador Chrome. Deve haver um problema de cabeçalho, porque se eu puder ver qualquer PDF usando o Chrome, então eu devo ser capaz de simular a visualização de qualquer outro PDF. Eu preciso mudar o REQUESTURI para a extensão de arquivo PDF, talvez That39d ser uma dor. Ndash M Miller Oct 8 13 em 18: 52Como construir um pedido POST multipartform-data Necessidade de criar um pedido POST que envia um arquivo que eu passei esta tarde tentando descobrir o que se parece. Este documento inclui um modelo que tem sido bem sucedido para mim. POST pathtoscript. php HTTP1.0 Host: exemplo Tipo de conteúdo: multipartform-data, boundaryAaB03x Content-Length: requestlen --AaB03x conteúdo-disposição: form-data namequotfield1quot campo1 --AaB03x content-disposition: form-data namequotfield2quot field2 - AaB03x content-disposition: form-data namequotuserfilequot filenamequotfilenamequot Tipo de conteúdo: mimetype Content-Transfer-Encoding: binário Observe que você deve gerar o cabeçalho Content-Length depois de gerar o corpo da solicitação (do primeiro --AaB03x para baixo, Incluindo os dados do arquivo), então a coisa a fazer na prática é construir o corpo primeiro, obter o strlen () e, em seguida, construir os cabeçalhos na frente do corpo. Consulte RFC1867 - Upload de arquivo baseado em formulário em HTML (faqs. orgrfcsrfc1867.html) para obter mais informações sobre o formato das mensagens quotmultipartform-dataquot. Por Chris Snyder na sexta-feira, 28 de março de 2003Ive criou um aplicativo em Angular JS para baixar um livro do Excel através de http post. (Como postado na página fsockopen do PHP Manual, por mim. No código abaixo eu estou passando as informações na forma de JSON. E enviá-lo para o servidor REST web service (java) através de um post angular http. O serviço da Web usa as informações do JSON e produz uma pasta de trabalho do Excel. Na resposta dentro do corpo do sucesso do borne do HTTP, Im que começ os dados binários dentro dessa variável de dados, mas não sabe convertê-la e download como uma lima de Excel. Alguém pode me dizer alguma solução para isso para converter o binário para o arquivo do Excel e baixar Meu código é como dão abaixo: perguntou Mar 17 14 at 6:08 Apenas notado você não pode usá-lo por causa do IE89, mas empurrar doente enviar de qualquer maneira. Talvez alguém a encontre útil Isso pode realmente ser feito através do navegador, usando blob. Observe o responseType eo código na promessa de sucesso. Há alguns problemas com ele embora como: Não suporta IE 8 e 9: abre uma janela pop-up para abrir o objectUrl que as pessoas podem ter bloqueado Gera nomes de arquivo estranho Ele fez o trabalho O código do lado do servidor em PHP Eu testei isso com parece esta. Tenho certeza que você pode definir cabeçalhos semelhantes em Java: Edit 20.04.2016 Navegadores estão tornando mais difícil para salvar dados desta forma. Uma boa opção é usar filesaver. js. Ele fornece uma implementação de navegador cruzada para saveAs. E deve substituir algum do código na promessa do sucesso acima. Jorg na imagem do Excel que você compartilhou acima, o texto no campo, ou seja, quotmy contentquot, ele está excedendo a largura da célula, existe uma opção através da qual posso definir as opções como largura de coluna padrão ou word wrap O problema que estou enfrentando é que, ao imprimir um arquivo como o acima, os dados são truncados se houver várias colunas ea largura dos dados é mais do que a largura da coluna. Muito obrigado ndash Mitaksh Gupta Aug 11 15 at 11:43 Não há nenhuma maneira (ao meu conhecimento) para acionar a janela de download em seu navegador de Javascript. A única maneira de fazê-lo é redirecionar o navegador para um URL que transmite o arquivo para o navegador. Se você pode modificar seu serviço REST, você pode ser capaz de resolvê-lo alterando para que a solicitação POST não responda com o arquivo binário, mas com um url para esse arquivo. Thatll obter o url em Javascript em vez dos dados binários, e você pode redirecionar o navegador para esse url, que deve solicitar o download sem sair da página original. Respondeu Mar 17 14 at 6:55 Eu estava enfrentando o mesmo problema. Deixe-me dizer-lhe como eu resolvi-lo e conseguiu tudo o que todos parecem estar faltando. Deve ter um botão (ou link) para um arquivo - (ou um fluxo de memória gerada) Deve clicar no botão e fazer o download do arquivo No meu serviço, (Im usando a API Web Asp), eu tenho um controlador retornando um HttpResponseMessage. Eu adiciono um StreamContent para o campo response. Content, defina os cabeçalhos para applicationoctet-stream e adicione os dados como um anexo. Eu mesmo dar-lhe um nome myAwesomeFile. xlsx Agora heres o truque) Estou armazenando o URL base em um arquivo de texto que eu li em uma variável em um valor angular chamado apiRoot. Eu faço isso declarando-o e, em seguida, configurá-lo na função de execução do Módulo, assim: Desta forma, eu posso definir a URL em um arquivo de texto no servidor e não se preocupar em soprar-lo em um upload. (Você sempre pode alterá-lo mais tarde por razões de segurança - mas isso tira a frustração do desenvolvimento)) E AGORA a magia: Tudo o que estou fazendo é criar um link com um URL que atinge diretamente meu ponto de extremidade de serviço e alvos em branco. O molho secreto é a função que define o href. Você está pronto para isso Mesmo em uma situação em que você está iterando sobre muitos registros que têm arquivos para baixar, você simplesmente alimentar o Id para a função ea função gera o url para o ponto de extremidade de serviço que fornece o arquivo. Espero que isso ajude a criar um anexo Content-Disposition cabeçalho valor usando o nome do arquivo dado, se fornecido. O nome do arquivo é opcional e se nenhum nome de arquivo é desejado, mas você deseja especificar opções. Defina filename como indefinido. Note Os cabeçalhos HTTP são do conjunto de caracteres ISO-8859-1. Se você estiver escrevendo este cabeçalho através de um meio diferente de setHeader em Node. js, você quer especificar a codificação binária em Node. js. ContentDisposition aceita essas propriedades no objeto de opções. Se a opção de nome de arquivo estiver fora do ISO-8859-1, o nome do arquivo será armazenado em um campo suplementar para clientes que suportam nomes de arquivo Unicode e uma versão ISO-8859-1 do nome do arquivo é gerada automaticamente. Isso especifica o nome do arquivo ISO-8859-1 para substituir a geração automática ou desabilita a geração em conjunto, o padrão é true. Uma string especificará o nome do arquivo ISO-8859-1 a ser usado no lugar da geração automática. False irá desativar incluindo um nome de arquivo ISO-8859-1 e somente incluir a versão Unicode (a menos que o nome do arquivo já seja ISO-8859-1). True permitirá a geração automática se o nome do arquivo estiver fora da norma ISO-8859-1. Se a opção de nome de arquivo for ISO-8859-1 e essa opção for especificada e tiver um valor diferente, a opção filename será codificada no campo estendido e este será definido como o campo de retorno, mesmo que ambos sejam ISO-8859-1. Especifica o tipo de disposição, padrão para o anexo. Isso também pode ser inline. Ou qualquer outro valor (todos os valores, exceto inline, são tratados como anexo, mas podem transmitir informações adicionais se ambas as partes concordarem com ela). O tipo é normalizado para minúsculas. Analisar uma seqüência de cabeçalho Content-Disposition. Isso controla automaticamente os parâmetros estendidos (Unicode), descodificando-os e fornecendo-os com o nome do parâmetro padrão. Isso retornará um objeto com as seguintes propriedades (exemplos são mostrados para o nome do arquivo de anexo da cadeia de caracteresEURO rates. txt filenameUTF-8e282ac20rates. txt): type. O tipo de disposição (sempre minúsculas). Exemplo: parâmetros de anexo. Um objeto dos parâmetros na disposição (nome do parâmetro sempre minúsculas e versões estendidas substituem versões não-estendidas). Exemplo: Envie um arquivo para download

No comments:

Post a Comment