js上传文件 java后台接收文件

摘要:
=null){FilefullFile=newFile;//解决文件名乱码问题FilesavedFile=newFile;fi.write;}}System.out.print;}catch{}}}
HTML 代码:
<div class="input-chunk">  
    <div>输入文件:</div>  
    <input type="file"value="选择文件"id="upload-file">  
    <br>  
    <a id="start-upload"href="javascript:void(0);"onclick="uploadFile();">开始上传</a>  
</div> 

js代码:
functionuploadFile(){  
    var fileObj = document.getElementById("upload-file").files[0]; //获取文件对象  
    var FileController = "entityServlet1"; //接收上传文件的后台地址  
              
    if(fileObj){  
        alert(fileObj);  
         //FormData 对象  
             var form = newFormData();   
             form.append("file", fileObj);//文件对象     
      
             //XMLHttpRequest 对象  
             var xhr = newXMLHttpRequest();      
             xhr.open("post", FileController, true);      
             xhr.onload = function() {   
                 alert(xhr.responseText);     
             };   
             xhr.send(form);  
                  
    }else{  
        alert("未选择文件");  
    }  
}  

Java Servlet 代码:

importjava.io.File;  
importjava.io.IOException;  
importjava.util.Iterator;  
importjava.util.List;  
  
importjavax.servlet.ServletException;  
importjavax.servlet.http.HttpServlet;  
importjavax.servlet.http.HttpServletRequest;  
importjavax.servlet.http.HttpServletResponse;  
  
importorg.apache.commons.fileupload.FileItem;  
importorg.apache.commons.fileupload.disk.DiskFileItemFactory;  
importorg.apache.commons.fileupload.servlet.ServletFileUpload;  
  
public class EntityServlet1 extendsHttpServlet {  
  
    private static final long serialVersionUID = 1L;  
    private String uploadPath = "D:\temp"; //上传文件的目录  
File tempPathFile;  
  
    //重写doPost方法,处理事件识别请求  
    protected voiddoPost(HttpServletRequest request,  
            HttpServletResponse response) throwsServletException, IOException {  
        try{  
            //Create a factory for disk-based file items  
            DiskFileItemFactory factory = newDiskFileItemFactory();  
  
            //Set factory constraints  
            factory.setSizeThreshold(4096); //设置缓冲区大小,这里是4kb  
            factory.setRepository(tempPathFile);//设置缓冲区目录  
  
            //Create a new file upload handler  
            ServletFileUpload upload = newServletFileUpload(factory);  
  
            //Set overall request size constraint  
            upload.setSizeMax(4194304); //设置最大文件尺寸,这里是4MB  
List<FileItem> items = upload.parseRequest(request);//得到所有的文件  
            Iterator<FileItem> i =items.iterator();  
            while(i.hasNext()) {  
                FileItem fi =(FileItem) i.next();  
                String fileName =fi.getName();  
                if (fileName != null) {  
                    File fullFile = new File(new String(fi.getName().getBytes(), "utf-8")); //解决文件名乱码问题  
                    File savedFile = newFile(uploadPath, fullFile.getName());  
                    fi.write(savedFile);  
                }  
            }  
            System.out.print("upload succeed");  
        } catch(Exception e) {  
  
        }  
    }  
}  

免责声明:文章转载自《js上传文件 java后台接收文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇freemarker常用的基本命令mtd-utils交叉编译安装下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

第四节:Webpack本地服务器搭建、剖析devServer的HRM热替换和其它配置、resolve模块解析、区分开发/生产环境方案实战

一. webpack本地服务器搭建 1. 为什么要搭建本地服务器?  我们之前通过【npm run build】,编译相关的代码; 然后需要在浏览器中运行,每次修改修改代码,都需要重新编译运行,很麻烦。我们希望可以做到,当文件发生变化时,可以自动的完成 编译 和 展示 。 2. watch mode模式 (1). 简介   在该模式下,webpack依赖图...

js给select下拉框赋值触发change事件

感谢作者的无私分享! 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/Tong__wei/article/details/96289555HTML: <select οnchange="selectChange()">     <...

Javascript模块化开发1——package.json详解

一、环境安装 Node.js 安装包及源码下载地址为:https://nodejs.org/en/download/。 在该页面你可以根据不同平台系统选择你需要的 Node.js 安装包。 Node.js里面集成了npm,npm是一种包管理工具,允许用户从NPM服务器下载别人编写的包或命令行程序并分享自己编写的包或命令行程序。 二、创建模块 输入命令npm...

9-爬虫高级实战【js逆向】

js逆向步骤 js调试工具 发条js调试工具 PyExecJs 实现使用python执行js代码 安装环境 安装node.js开发环境 pip install PyExecJs js算法改写初探 打断点 代码调试时,如果发现了相关变量的缺失,一般给其定义成空字典即可。 代码调试时,如果js内置对象确实,直接将该内置对象赋值为this。例如...

原生js版分页插件

之前我在自己的博客里发表了一篇用angularJs自定义指令实现的分页插件,今天简单改造了一下,改成了原生JavaScript版本的分页插件,可以自定义一些简单配置,特此记录下来。如有不足之处,欢迎指出。  需要购买阿里云产品和服务的,点击此链接领取优惠券红包,优惠购买哦,领取后一个月内有效: https://promotion.aliyun.com/nt...

Failed to mount component: template or render function not defined.

在公司下班前提交的代码,夜晚回家pull一把,运行却报错: Failed to mount component: template or render function not defined. 百度翻译:无法安装组件:模板或渲染功能未定义。 什么原因呢?百度了一大圈,有的说需要修改配置文件,有的说需要回退vue-loader版本。。。。。 但是都试了个遍...