numaralı telefonu arayarak Dosyaları yüklemek için web uygulamasında şu Rest yöntemini kullanıyorum. Metin dosyalarını yüklediğimde, doğru şekilde kaydedilirler ve açabilirim. Ancak başka bir formatta * .docx veya * .pdf veya * .jpg olması durumunda dosyalar orijinal dosya olarak tam boyutta saklanır ancak bozulur. aşağıdaki gibiREST yöntemiyle yüklenen bozuk dosyalar,
@POST
@Consumes("multipart/form-data")
public Response readFile() throws IOException, ServletException {
Part filePart = request.getPart("c");
InputStream f = filePart.getInputStream();
String l = null;
DataInputStream ds = new DataInputStream(f);
File file = new File("c:\\temp\\" + getSubmittedFileName(filePart));
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
while ((l = ds.readLine()) != null) {
bw.write(l);
}
bw.flush();
bw.close();
return Response.status(201).entity("File Created").build();
} catch (Exception e) {
e.printStackTrace();
}
return Response.status(500).build();
}
ve html sayfası: Aşağıdaki kodu
<form action="api/fetch" method="post" enctype="multipart/form-data">
<input id="c" name="c" type="file" aria-required="true"><br/><br/>
<button type="submit">Submit</button>
</form>
Doğrusu bundan daha dosya yüklemek için başka bir yolu olmalı varsayalım. Ben How to upload files to server using JSP/Servlet? hakem var ama dosya uzantısı hakkında bir şey söylemez varsayalım. Peki, kodumda neyin yanlış gidiyor?
mükemmel çalışır. derinlemesine açıklama için teşekkürler :) – BingAring