Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.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 如何使用Ajax和Servlet上传文件_Javascript_Java_Jquery_Ajax_Jakarta Ee - Fatal编程技术网

Javascript 如何使用Ajax和Servlet上传文件

Javascript 如何使用Ajax和Servlet上传文件,javascript,java,jquery,ajax,jakarta-ee,Javascript,Java,Jquery,Ajax,Jakarta Ee,当我点击上传按钮时,什么也没发生 本页包括另一页。 所以我需要使用按钮点击,因为主页已经有另一个表单和提交按钮 我认为我的脚本代码失败了。 UploadImage.jsp EDIT=我添加了Servlet和jsp页面。第一个是UploadImage.jsp第二个是AddBand.jsp最后一个是servlet控制器isMultiPartContent方法在单击上载按钮时返回allways false。 <form id="uploadForm" > <div

当我点击上传按钮时,什么也没发生

本页包括另一页。
所以我需要使用按钮点击,因为主页已经有另一个表单和提交按钮

我认为我的脚本代码失败了。 UploadImage.jsp EDIT=我添加了Servlet和jsp页面。第一个是UploadImage.jsp第二个是AddBand.jsp最后一个是servlet控制器isMultiPartContent方法在单击上载按钮时返回allways false。

   <form id="uploadForm" >
      <div class="form-group">
        <label  for="bandPicture">GRUP RESMİ</label>
        <input type="file" accept="image/x-png,image/gif,image/jpeg" id="bandPicture" class="form-control" name="bandPicture">
        <input type="button" id="uploadImage" class="btn-success" value="Upload">
        <label id="uploadResult"></label>
      </div>
    </form>
    <script type="text/javascript">
      $(document).ready(function(){
        $('#uploadImage').click(function(){
          var form = $('#uploadform');
          form.submit();
          form.submit(function(){
            $.ajax({
              type: 'Post',
              url: 'UploadImage',
              data: form.serialize(),
              enctype: 'multipart/form-data',
              success: function(result) {
                $('#uploadResult').html(result);
              }
            });
          });
        });
      });
    </script>


<html>
<head>
    <title>Manhattan Live Performance</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport"
        content="width=device-width, initial-scale=1, maximum-scale=1">
    <link href="assets/css/style.css" rel="stylesheet" type="text/css"
        media="all" />
    <link href="assets/3thParty/css/bootstrap.min.css" rel="stylesheet"
        type="text/css" />
    <link href="assets/3thParty/css/bootstrap-theme.min.css"
        rel="stylesheet" type="text/css" />

    <script src="assets/3thParty/js/jquery-3.2.1.min.js"
        type="text/javascript"></script>
    <script src="assets/3thParty/js/bootstrap.min.js" type="text/javascript"></script>
    <style type="text/css">
        label {color:white !important}
    </style>
</head>
<body>
    <div class="header">
        <jsp:include page="AdminHeader.jsp" />
    </div>
        <div class="container">
            <div class="row">
                <div class="col-md-6 col-md-offset-3">
                    <form action="AdminPanel/AddBand" method="Post" enctype="multipart/form-data">
                        <div class="form-group">
                            <label  for="bandName">GRUP ADI</label>
                            <input type="text" id="bandName" class="form-control" name="bandName">
                        </div>
                        <div class="form-group">

                            <div class="row">
                            <div class="col-md-4">
                                <label  for="member">GRUP ÜYESİ</label>
                                <input type="text" id="member" class="form-control" name="member">
                                <input type="button" class="btn btn-success" style="float: right;" onClick="addMember();" value="Ekle">
                            </div>
                            <div class="col-md-8">
                                <label  for="bandName">EKLENEN ÜYELER</label>
                                <select class="form-control" name="memberList" id="memberList"></select>
                                <input type="button" class="btn btn-success" style="float: right;" onClick="deleteMember();" value="Çıkar">
                            </div>
                            </div>
                        </div>
                        <div>
                            <jsp:include page="UploadImage.jsp"></jsp:include>
                        </div>
                        <div class="form-group">
                            <label >
                                <input type="checkbox">Haftalık Grup
                            </label>
                        </div>
                        <div class="form-group">
                            <label for="bandInfo">GRUP HAKKINDA</label></br>
                            <textarea  class="form-control" id="editor" rows="6" name="bandInfo"></textarea>
                        </div>
                        <div class="form-group">
                            <input type="submit" id="submit" class="btn-success" value="GRUBU EKLE">
                        </div>
                    </form>
                </div>
            </div>
        </div>
    <div class="footer">
        <jsp:include page="../Footer.jsp"></jsp:include>
    </div>
    <script type="text/javascript">
            function addMember() {
                var opt = document.createElement("option");
                opt.text = document.getElementById("member").value;
                opt.value = document.getElementById("member").value;
                var select = document.getElementById("memberList");
                select.appendChild(opt);
            }

            function deleteMember() {
                var select = document.getElementById("memberList");
                select.remove(select.selectedIndex);
            }
    </script>
</body>
</html>



    public class UploadImageController extends HttpServlet {

    /**
     * 
     */
    private static final long serialVersionUID = 6737157694478413704L;

    // Yüklenecek dizin
    private static final String UPLOAD_DIRECTORY = "assets/images/upload";

    // Upload ayarları
    private static final int MEMORY_THRESHOLD   = 1024 * 1024 * 3;  // 3MB
    private static final int MAX_FILE_SIZE      = 1024 * 1024 * 40; // 40MB
    private static final int MAX_REQUEST_SIZE   = 1024 * 1024 * 50; // 50MB
    private static final String UPLOAD_SUCCESS = "Dosya Yüklendi";
    private static final String NO_FILE = "Lütfen Resim Seçin";

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/plain");
        resp.setCharacterEncoding("UTF-8");
        PrintWriter out = resp.getWriter();
        if(!ServletFileUpload.isMultipartContent(req)) {
            out.print("enctype = multipart/form-data olmalıdır.");
            out.flush();
            return;
        }

        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(MEMORY_THRESHOLD);
        File repository = new File(System.getProperty("java.io.tmpdir"));
        System.out.println(repository.getAbsolutePath());
        factory.setRepository(repository);
        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setFileSizeMax(MAX_FILE_SIZE);
        upload.setSizeMax(MAX_REQUEST_SIZE);
        String uploadPath = getServletContext().getRealPath("")
                + File.separator + UPLOAD_DIRECTORY;
        System.out.println(uploadPath);

        try {
            List<FileItem> images = upload.parseRequest(req);
            if (images != null && images.size() > 0) {
                for (FileItem image : images) {
                    if (!image.isFormField()) {
                        String fileName = new File(image.getName()).getName() + System.currentTimeMillis();
                        String filePath = uploadPath + File.separator + fileName;
                        File storeFile = new File(filePath);
                        //Dosyayı Kaydet
                        image.write(storeFile);
                        out.print(UPLOAD_SUCCESS);
                    }
                    else out.print("Form elemanı değil");
                }
            } else out.print(NO_FILE);
        } catch (Exception e) {
            out.print("Exeption");
            e.printStackTrace();
        }
    }



}

GRUP RESMİ
$(文档).ready(函数(){
$('#uploadImage')。单击(函数(){
var form=$('#uploadform');
表单提交();
表单提交(函数(){
$.ajax({
键入:“Post”,
url:“UploadImage”,
数据:form.serialize(),
enctype:“多部分/表单数据”,
成功:功能(结果){
$('#uploadResult').html(结果);
}
});
});
});
});
曼哈顿现场表演
标签{颜色:白色!重要}
格鲁普阿迪酒店
是的
埃克伦·耶勒
哈夫塔勒克格鲁普酒店
哈金
函数addMember(){ var opt=document.createElement(“选项”); opt.text=document.getElementById(“成员”).value; opt.value=document.getElementById(“成员”).value; var select=document.getElementById(“成员列表”); 选择.appendChild(opt); } 函数deleteMember(){ var select=document.getElementById(“成员列表”); 选择。删除(选择。选择索引); } 公共类UploadImageController扩展HttpServlet{ /** * */ 私有静态最终长SerialVersionId=673715769478413704L; //尤克勒内切克·迪津 私有静态最终字符串上传\ u DIRECTORY=“资产/图像/上传”; //上传ayarları 私有静态最终整数内存\u阈值=1024*1024*3;//3MB 私有静态最终int MAX_FILE_SIZE=1024*1024*40;//40MB 私有静态final int MAX_REQUEST_SIZE=1024*1024*50;//50MB 私有静态最终字符串上传_SUCCESS=“Dosya Yüklendi”; 私有静态最终字符串NO_FILE=“Lütfen Resim Seçin”; @凌驾 受保护的void doPost(HttpServletRequest-req,HttpServletResponse-resp)引发ServletException,IOException{ 分别为setContentType(“文本/普通”); 分别为setCharacterEncoding(“UTF-8”); PrintWriter out=resp.getWriter(); 如果(!ServletFileUpload.isMultipartContent(请求)){ 打印(“enctype=多部分/表格数据olmalıdır.”); out.flush(); 返回; } DiskFileItemFactory=新的DiskFileItemFactory(); 设置SizeThreshold(内存_阈值); 文件存储库=新文件(System.getProperty(“java.io.tmpdir”); System.out.println(repository.getAbsolutePath()); setRepository(repository); ServletFileUpload upload=新的ServletFileUpload(工厂); upload.setFileSizeMax(最大文件大小); upload.setSizeMax(最大请求大小); 字符串uploadPath=getServletContext().getRealPath(“”) +File.separator+上传目录; System.out.println(上传路径); 试一试{ 列表图像=upload.parseRequest(req); if(images!=null&&images.size()>0){ 用于(文件项图像:图像){ 如果(!image.isFormField()){ 字符串文件名=新文件(image.getName()).getName()+System.currentTimeMillis(); 字符串filePath=uploadPath+File.separator+fileName; 文件存储文件=新文件(文件路径); //多斯耶·凯代特 image.write(存储文件); 打印输出(上传成功); } else out.print(“elemanıdeğil表格”); } }else out.打印(无文件); }捕获(例外e){ 打印(“例外”); e、 printStackTrace(); } } }
您不需要提交功能

$(document).ready(function(){
    $('#uploadImage').click(function(){
      var form = $('#uploadform');
        $.ajax({
          type: 'Post',
          url: 'UploadImage',
          data: form.serialize(),
          enctype: 'multipart/form-data',
          success: function(result) {
            $('#uploadResult').html(result);
          }
        });
    });
  });

什么也没发生
-检查浏览器开发人员工具控制台(F12)-查看是否有错误。Sevlet ismultipartcontent return false。我也在表单标签中添加了enctype。但仍然返回false。