code GWT:
@Override
public void onDrop(final DropEvent event) {
event.stopPropagation();
event.preventDefault();
final RequestBuilder rb = new
RequestBuilder(RequestBuilder.POST, "./servletUpload");
final String
type=event.getDataTransfer().getFiles().getItem(0).getType();
final String
name=event.getDataTransfer().getFiles().getItem(0).getName();
final FileReader fileReader=new FileReader();
LoadHandler handler=new LoadHandler() {
@Override
public void onLoad(LoadEvent evt) {
rb.setHeader("filename", name);
rb.setHeader("Content-Type", type
+";charset=ISO-8859-1");
try {
rb.sendRequest(fileReader.getResult(),
new RequestCallback() {
@Override
public void onError(Request arg0,
Throwable arg1) {
}
@Override
public void
onResponseReceived(Request arg0,
Response arg1) {
rb.setHeader("Content-Type",
type+";charset=ISO-8859-1");
} }
);
} catch (RequestException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
};;;
fileReader.readAsBinaryString(event.getDataTransfer().getFiles().getItem(0));
fileReader.addLoadHandler(handler);
Code Java:
public void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
File f = new File(request.getHeader("filename"));
Base64InputStream decodingStream = new
Base64InputStream(request.getInputStream());
Writer w = new BufferedWriter(new OutputStreamWriter(new
FileOutputStream(f),Charset.forName("ISO-8859-1")));
int c;
while((c=decodingStream.read())!=-1){
w.write(c);
}
w.flush();
w.close();
decodingStream.close();