Java - cliente de transferência de arquivos-servidor
[Java] Cliente-Servidor de Transferência de Arquivos
Questão
Como parte de um aplicativo da Web em Java, eu preciso, por meio de um formulário, que os usuários possam enviar arquivos (qualquer tipo: pasta de trabalho do Excel, imagem ...) para o servidor e os últimos sejam registrados no diretório do aplicativo.
Meu problema agora é que os arquivos não estão totalmente restaurados (bem, eu acho que estão, mas eu tenho um problema com a escrita), eu explico: quando eu carrego o arquivo "Blabla. Txt", cujo conteúdo é "Olá, somos quinta-feira, 16 de julho de 2009 e o céu está ensolarado. ", Então o arquivo salvo no servidor é:" Blabla.txt "com conteúdo:" oju, nu ntl tl 6Jilt20 ileteslil. "Pode ser observado focando neste absurdo que uma carta foi escrita apenas dois. No caso de uma imagem, não posso fazer o teste porque você não pode visualizá-lo depois de ter tomado essa rota.
Essa descoberta me faz pensar que isso é um problema de codificação, mas como não sei de nada ... não tenho certeza.
Em suma, aqui está o meu código:
boolean isMultipart FileUpload.isMultipartContent = (request); DiskFileUpload DiskFileUpload upload = new (); Listar itens = nulo; tente {upload.parseRequest items = (request); } Captura (FileUploadException e) {} String fileName = ((FileItem) items.get (0)). GetName (); fileName = nomFichier.substring (nomFichier.lastIndexOf ("\ \") +1); Feito InputStream = null; did = (InputStream) ((FileItem) items.get (0)). getInputStream (); FileOutputStream fos = new FileOutputStream (novo arquivo ("MyFolder /" + nome_do_arquivo)); while (fis.read ()! = -1) {fos.write (fis.read ()); } fos.close (); fis.close (); No JSP, o formulário codifica multipartes:
Então, aqui, depois de muita pesquisa para chegar a este ponto, desta vez estou morto e minha pesquisa não desbloqueio.
Se isso te inspira, por favor me dê conselhos e se eu estiver errado sobre o método e houver muito mais fácil, não hesite! Obrigado por ler e bom dia.
Solução
Ok, percebi logo após postar esta mensagem:
Eu faço um fis.read duplo (), tão normal que eu pulei caracteres ...
Estou tão envergonhada, mas deixo esta mensagem se puder ajudar alguns. :)
Isso corrigiu a música (apenas o loop condicional):
int fisread fis.read = (); while (fisread! = -1) {fos.write (fisread); fisread fis.read = (); }
Nota
Resolvido por Asefthu