Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将文件从jsp发送到servlet的Ajax请求_Javascript_Ajax_File_Servlets_Struts - Fatal编程技术网

Javascript 将文件从jsp发送到servlet的Ajax请求

Javascript 将文件从jsp发送到servlet的Ajax请求,javascript,ajax,file,servlets,struts,Javascript,Ajax,File,Servlets,Struts,下面是使用struts框架完成的 Jsp 动作类 FormFile attachfile = uploadDrawingForm.getAttachfile(); 这对我来说很好,但我需要使用ajax请求(JSPServlet)来完成这项工作,下面是我尝试的,但没有成功--- Jsp 对于web.xml中的映射,我提供了 <servlet> <servlet-name>UploadDrawingServlet</servlet-name>

下面是使用struts框架完成的

Jsp

动作类

FormFile attachfile = uploadDrawingForm.getAttachfile();
这对我来说很好,但我需要使用ajax请求(JSPServlet)来完成这项工作,下面是我尝试的,但没有成功---

Jsp

对于web.xml中的映射,我提供了

 <servlet>
    <servlet-name>UploadDrawingServlet</servlet-name>
    <servlet-class>UploadDrawingServlet</servlet-class>
</servlet>

 <servlet-mapping>
    <servlet-name>UploadDrawingServlet</servlet-name>
    <url-pattern>/UploadDrawingServlet</url-pattern>
</servlet-mapping>
有谁能告诉我如何使用ajax请求实现以下内容吗。 或者,如果这种类型的请求不可能。 多谢各位////

function dynamicUpload(){
  var formElement = $("[name='attachfileform']")[0];
  var fd = new FormData(formElement); 
  var fileInput = $("[name='attachfile']")[0];
  fd.append('file', fileInput.files[0] );

  console.log(fd);

  $.ajax({
    url: 'UploadDrawingServlet',
    data: fd,
    processData: false,
    contentType: false,
    type: 'POST',
    success: function(data){
      console.log(data);
    }
 });
}


参见

什么特别不起作用?FormData对象不正确,或者ajax post请求未发送到服务器,或者您是否收到错误的响应?请确保$.ajax中的url正确。我怀疑UploadDrawingServlet是否正确。它执行函数onclick event,但不处理servlet类,我在该类中接收文件以供进一步处理。我在web.xml中提供了一个映射,在servlet中只有一个接收函数。我将用.xml和servlet更新我的问题。我已经更新了我的问题。它也不会在控制台生成任何输出。很遗憾,我不熟悉java和servlet,所以我无法帮助您使用服务器端,但在我看来,您已经输入了wrog url。例如,如果您使用的是ASP.net MVC,在使用Web服务的情况下,url应该看起来像“UploadDrawingServlet/service”或“UploadDrawingServlet.asmx/service”。我想你的情况也应该如此。
 <script>
 function dynamicUpload()
 {  
alert("function played");
var fd = new FormData($("attachfileform"));    
fd.append( 'file', input.files[0] );


alert(fd);
$.ajax({
    url: 'UploadDrawingServlet',
    data: fd,
    processData: false,
    contentType: false,
    type: 'POST',
    success: function(data){
      alert(data);

    }
});
}
 </script>

 <form enctype="multipart/form-data" method="post" action="" id="attachfileform" name="attachfileform" >
 <input type="file" name="attachfile" class="regi_textbox"/>
 <input type="button" class="update_but"  value="Upload File" onclick="dynamicUpload()"/>
  </form>
public class UploadDrawingServlet extends HttpServlet{

private static final long serialVersionUID = 1L;

public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String file = request.getParameter("data");

}   
}
 <servlet>
    <servlet-name>UploadDrawingServlet</servlet-name>
    <servlet-class>UploadDrawingServlet</servlet-class>
</servlet>

 <servlet-mapping>
    <servlet-name>UploadDrawingServlet</servlet-name>
    <url-pattern>/UploadDrawingServlet</url-pattern>
</servlet-mapping>
public class UploadDrawingServlet extends HttpServlet{

private static final long serialVersionUID = 1L;

public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("Here in servlet class");
String file = request.getParameter("data");
}   
}
function dynamicUpload(){
  var formElement = $("[name='attachfileform']")[0];
  var fd = new FormData(formElement); 
  var fileInput = $("[name='attachfile']")[0];
  fd.append('file', fileInput.files[0] );

  console.log(fd);

  $.ajax({
    url: 'UploadDrawingServlet',
    data: fd,
    processData: false,
    contentType: false,
    type: 'POST',
    success: function(data){
      console.log(data);
    }
 });