微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

利用Ajax上传二进制文件

网页文件

<!doctype html>
<html>
<head>
<Meta charset="utf-8">
<Meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<Meta name="viewport" content="width=device-width,initial-scale=1">
<title>利用Ajax上传二进制文件</title>
<script type="text/javascript"> window.onload = function() { var file = null,fileName = null,xhr = null; function upload(url) { var fileInput = document.getElementById("fileInput"); fileInput.addEventListener("change",function() { file = this.files[0]; fileName = file.name; xhr = new XMLHttpRequest(); xhr.open("POST",url); // 这里会自动设置好请求头 xhr.send(file); // 直接上传二进制文件 },false); } var uploadBtn = document.getElementById("upload"); uploadBtn.onclick = function() { upload("/Ajax/FileUploader"); }; }; </script>
</head>
<body>
    <input type="file" id="fileInput" multiple="multiple" />
    <input type="button" id="upload" value="click to upload" />
</body>
</html>

后台简单处理

package cn.chd.fileupload;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.servlet.servletexception;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/** * Servlet implementation class FileUploader */
public class FileUploader extends HttpServlet {
    private static final long serialVersionUID = 1L;
    int count = 1;

    protected void doGet(HttpServletRequest request,HttpServletResponse response)
            throws servletexception,IOException {
        String path = this.getServletContext().getRealPath("/upload");
        InputStream in = request.getInputStream();
        String contentType = request.getContentType();

        // 这里是为了获取文件扩展名,有点小问题
        String extention = contentType.substring(contentType.indexOf('/') + 1);
        OutputStream out = new FileOutputStream(path + "\\" + (count++) + "." + extention);
        int len = -1;
        byte[] buffer = new byte[1024];

        while ((len = in.read(buffer)) != -1) {
            out.write(buffer,0,len);
        }

        in.close();
        out.close();
    }

    protected void doPost(HttpServletRequest request,IOException {
        doGet(request,response);
    }

}

原文地址:https://www.jb51.cc/ajax/162383.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐