Pergunta

Tenho algumas soluções, mas nenhuma delas funciona perfeitamente.

Plataforma

  1. ASP.NET/VB.NET/.NET 2.0
  2. IIS6
  3. IE6 (principalmente), com algum IE7;Firefox não é necessário, mas é útil

Opções permitidas de terceiros

  1. Clarão
  2. ActiveX (gostaria de evitar)
  3. Java (gostaria de evitar)

Tentativas Atuais

Estilo Gmail:Você pode usar javascript para adicionar novos elementos de upload (input type='file') e, em seguida, carregá-los todos de uma vez com o clique de um botão.Isso funciona, mas ainda requer muitos cliques.(Consegui usar um controle ActiveX invisível para detectar coisas como tamanho do arquivo, o que seria útil.)

Carregador Flash:Descobri alguns controles de Flash Upload que usam um arquivo flash 1x1 para atuar como uploader, que pode ser chamado por javascript.(Um desses controles é FancyUpload, outro é Carregador de vários arquivos do Dojo, ainda outro é um por darick_c em CodeProject.) Isso me empolgou, mas rapidamente me deparei com dois problemas:

  1. O Flash 10 interromperá a funcionalidade usada para chamar a caixa de diálogo de upload de vários arquivos.A solução alternativa é usar um quadro de flash transparente ou apenas usar um botão de flash para chamar a caixa de diálogo.Isso não é grande coisa.
  2. A autenticação integrada do Windows usada em nossa intranet não é usada quando o arquivo Flash tenta fazer upload dos arquivos, solicitando credenciais ao usuário.A solução alternativa para isso é usar sessões sem cookies, o que seria um pesadelo para o nosso projeto por vários outros motivos.

Carregador Java:Notei vários uploaders de vários arquivos baseados em Java, mas a maioria deles parece custar dinheiro.Se eu encontrasse um que funcionasse muito bem, poderia comprá-lo.Eu prefiro não.Também não gosto da aparência da maioria deles.Gostei do FancyUpload porque ele interagia com html/javascript para que eu pudesse estilizá-lo e gerenciá-lo facilmente da maneira que quisesse.

Carregador ActiveX:eu encontrei uma solução ActiveX também.Parece que o ActiveX funcionará.Eu simplesmente escreveria o meu próprio em vez de comprar aquele.Este será meu último recurso, eu acho.

Resolução

Eu adoraria poder usar algo como FancyUpload.Se eu conseguir passar pelo prompt de credenciais de alguma forma, seria perfeito.Mas, pela minha pesquisa, parece que a única solução real são as sessões sem cookies, o que simplesmente não consigo fazer.

Então, a questão é:Existe uma maneira de resolver os problemas apresentados acima OU existe uma solução diferente que não listei e que atinja o mesmo objetivo?

Foi útil?

Solução 5

@davidinbcn.myopenid.co:Foi basicamente assim que resolvi esse problema.Mas, na tentativa de fornecer uma resposta mais detalhada, estou postando minha solução aqui.

A solução!

Crie dois aplicativos da web, ou sites, ou qualquer outra coisa.

Aplicação A é um aplicativo da web simples.O objetivo deste aplicativo é receber uploads de arquivos e salvá-los no local adequado.Configure isso como um acesso anônimo permitido.Em seguida, crie uma única página ASPX que aceite arquivos postados e os salve em um determinado local.(Estou fazendo isso em uma intranet.Os sites da Internet podem estar se expondo a problemas de segurança ao fazer isso.Tome precauções extras se for esse o caso.) O código por trás desta página seria mais ou menos assim:

Dim uploads As HttpFileCollection = HttpContext.Current.Request.Files
If uploads.Count > 0 Then
    UploadFiles(uploads)
Else
    result = "error"
    err = "File Not Uploaded"
End If

Aplicação B é o seu site principal que permitirá uploads de arquivos.Configure-o como um aplicativo Web autenticado que não permite acesso anônimo.Depois, coloque o FancyUpload (ou solução semelhante) em uma página deste site.Configure-o para postar seus arquivos na página ASPX de upload do Aplicativo A.

Outras dicas

Não creio que haja alguma solução alternativa para a autenticação integrada do Windows.O que você poderia fazer é salvar os arquivos em uma pasta genérica desprotegida e, no caso do swfupload, usar um manipulador para mover o arquivo quando estiver totalmente carregado

Você poderia tentar Baixar SWFU também - caberia na "categoria" do Flash Uploader.

Nossa empresa usa ajaxuploader.com que oferece suporte a esse recurso.

No Internet Explorer, FileReference.upload (upload flash) vai envie biscoitos também.

Esse comportamento é interrompido somente quando executado em outros navegadores.

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