I'm trying to implement a drag and drop feature for uploading files to my server. Before mentioning my problem here is my code:
Front-End:
<div class="dndu">
<img class="dN_d" src="../logos/draganddrop.png" style="height:120px"/>
<span class="danddT">Drag & Drop</span>
<div class="dndbu"></div>
<div class="uppbd">
<label class="uppbb">
<input size="1" accept="image/*" class="BAPPB_B" value="Browse" type="file" style="position:fixed; top:-1000px;">
<span>Browse</span>
</label>
</div>
</div>
function upload(file){
xhr=new XMLHttpRequest();
xhr.open('post','../servlet',true);
xhr.setRequestHeader('Content-Type', 'multipart/form-data');
xhr.setRequestHeader('X-File-Name',file.fileName);
xhr.setRequestHeader('x-File-Size',file.fileSize);
xhr.setRequestHeader('X-File-Type',file.fileType);
xhr.send(file);
}
Back-End:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
for(Part p : request.getParts() ) {
InputStream filecontent = null;
OutputStream output = null;
output = new FileOutputStream(new File("C:/folder/bkimg.jpg"));
filecontent = p.getInputStream();
final byte[] bytes = new byte[1024];
int read = 0;
while((read = filecontent.read(bytes))!=-1){
output.write(bytes,0,read);
}
output.close();
}
}
The problem is that I am getting an exception in my server which says:
java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found at org.apache.catalina.connector.Request.parseParts(Request.java:2863) at org.apache.catalina.connector.Request.getParts(Request.java:2699) at org.apache.catalina.connector.RequestFacade.getParts(RequestFacade.java:1096) at duck.reg.pack.uploadtostack.doPost(servlet.java:25) at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:522) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found at org.apache.tomcat.util.http.fileupload.FileUploadBase$FileItemIteratorImpl.(FileUploadBase.java:840) at org.apache.tomcat.util.http.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:256) at org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:280) at org.apache.catalina.connector.Request.parseParts(Request.java:2791) ... 27 more