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

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

 Java Servlet 代码:

import java.io.File;  
import java.io.IOException;  
import java.util.Iterator;  
import java.util.List;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
import org.apache.commons.fileupload.FileItem;  
import org.apache.commons.fileupload.disk.DiskFileItemFactory;  
import org.apache.commons.fileupload.servlet.ServletFileUpload;  
  
public class EntityServlet1 extends HttpServlet {  
  
    private static final long serialVersionUID = 1L;  
    private String uploadPath = "D:\\temp"; // 上传文件的目录  
    File tempPathFile;  
  
    // 重写doPost方法,处理事件识别请求  
    protected void doPost(HttpServletRequest request,  
            HttpServletResponse response) throws ServletException, IOException {  
        try {  
            // Create a factory for disk-based file items  
            DiskFileItemFactory factory = new DiskFileItemFactory();  
  
            // Set factory constraints  
            factory.setSizeThreshold(4096); // 设置缓冲区大小,这里是4kb  
            factory.setRepository(tempPathFile);// 设置缓冲区目录  
  
            // Create a new file upload handler  
            ServletFileUpload upload = new ServletFileUpload(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 = new File(uploadPath, fullFile.getName());  
                    fi.write(savedFile);  
                }  
            }  
            System.out.print("upload succeed");  
        } catch (Exception e) {  
  
        }  
    }  
}  

 

 

 

posted on 2017-01-13 14:15 <span 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/car1900/p/6282539.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值