Pergunta

Eu estou revendo alguns código legado e eu encontrei um bug que faz com que a resposta para sentar-se indefinidamente.

Aqui está a idéia básica:

Response.Content-Type = "application/octet-stream"
Response.AddHeader("Content-Disposition", "attachment; filename" & someFileName)
Response.AddHeader("Content-Length", someStoredLength)
Response.BinaryWrite(someByteArray)
Response.Flush()
Response.End()

O problema é que someStoredLength é muito maior do que o tamanho real do someByteArray, para que o cliente apenas se senta lá esperando o download do arquivo enquanto o navegador apenas gira.

Eu estou contemplando apenas removendo o AddHeader que especifica o comprimento de conteúdo, porque quando eu faço isso tudo parece funcionar bem, mas eu estou preocupado que eu não estou entendendo alguma coisa.

É ok para mim para remover esse AddHeader ou devo descobrir a melhor maneira de lidar com este problema?

Foi útil?

Solução

Alterar a linha Content-Length com o seguinte:

Response.AddHeader("Content-Length", someByteArray.Length.ToString())

Outras dicas

O aplicativo deve (rolagem até Content-Length) defini-lo, no entanto, não é estritamente necessário.

Aqui está uma decente discussão de opções possíveis.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top