`

ajax上传文件 与下载

阅读更多
ajax上传

后台处理
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

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

import org.apache.commons.fileupload.util.Streams;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.MultipartResolver;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

import com.okcoin.util.Logs;

@Controller
@RequestMapping(value="/file/*.do")
public class FileController extends MultiActionController{
    
    public String saveFile(HttpServletRequest request,HttpServletResponse response) throws IOException
    {
        MultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext());
        MultipartHttpServletRequest multipartRequest = null;
        try {
            multipartRequest = resolver.resolveMultipart(request);
        } catch (Exception e) {
            Logs.geterrorLogger().error("AdminAccountController submitVerifyFile 非常的请求");
        }
        
        //接收文件
        MultipartFile documentFile = multipartRequest.getFile("file");
        //获取文件名
        String documentFileName=documentFile.getOriginalFilename();
        System.out.println("FileName:" + documentFileName);
        
        BufferedInputStream in = new BufferedInputStream(documentFile.getInputStream());
        BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("D:\\Users\\" + documentFileName));
        Streams.copy(in, out, true);
        System.out.println("copy finished.");
        return "";
    }
}

前端处理
function UpladFile() {
    var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
    var FileController = "地址"; // 接收上传文件的后台地址

    // FormData 对象
    var form = new FormData();
    form.append("file", fileObj); // 文件对象
    // XMLHttpRequest 对象
    var xhr = new XMLHttpRequest();
    xhr.open("post", FileController, true);
    xhr.onload = function() {
        // alert("上传完成!");
    };
    xhr.send(form);
}




ajax 生成表格下载


//生成csv文件
function JSONToCSVConvertor(JSONData, ReportTitle, ShowLabel) { 
    var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;
    var CSV = '';
    if (ShowLabel) {
        var row = "";
        for (var index in arrData[0]) {
            row += index + ',';
        }
        row = row.slice(0, -1);
        CSV += row + '\r\n';
    }
    for (var i = 0; i < arrData.length; i++) {
        var row = "";
        for (var index in arrData[i]) {
            row += '"' + arrData[i][index] + '",';
        }
        row.slice(0, row.length - 1);
        CSV += row + '\r\n';
    }
    if (CSV == '') {
        alert("Invalid data");
        return;
    }
    var blob = new Blob(["\ufeff" + CSV], {type: 'text/csv'});
    var fileName = "";
    fileName += ReportTitle.replace(/ /g, "_");
    var uri = 'data:text/csv;charset=utf-8,\uFEFF' + encodeURI(CSV);
    var link = document.createElement("a");
    link.href = URL.createObjectURL(blob);
    link.style = "visibility:hidden";
    link.download = fileName + ".csv";
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
}
分享到:
评论

相关推荐

    上传文件AJAX

    在现代Web开发中,"上传文件AJAX"是一项至关重要的技术,它允许用户在不刷新整个页面的情况下,通过异步方式上传文件。这种方式极大地提升了用户体验,因为它使得网页交互更加流畅和快速。AJAX(Asynchronous ...

    ajax上传文件案例

    然而,传统的AJAX并不能直接处理文件上传,因为XMLHttpRequest对象在浏览器的实现中没有提供处理二进制数据的能力。但随着技术的发展,人们找到了利用AJAX进行文件上传的方法,例如通过使用插件或库,如本案例中的...

    ajax上传下载

    ### AJAX上传下载技术详解 #### 引言 随着互联网技术的发展,用户对于网站交互体验的要求越来越高,其中异步上传和下载功能成为提升用户体验的关键技术之一。AJAX(Asynchronous JavaScript and XML)技术允许网页...

    ajax实现java文件下载

    6. **新建 文本文档.txt**:这可能是示例中的一个测试文件,用于演示如何通过Ajax进行下载。在实际应用中,这个文件的名称和类型将由用户选择或由业务逻辑决定。 具体实现步骤: 1. **前端**:在JSP文件中,使用...

    asp.net ajax 多文件上传

    ASP.NET AJAX 多文件上传是一种...综上所述,ASP.NET AJAX多文件上传涉及到前端与后端的协同工作,包括异步通信、文件处理、用户交互和错误处理等多个环节。通过合理的实现,可以为用户提供流畅、安全的文件上传体验。

    Base64和AjaxUpload上传文件代码实例

    Base64和AjaxUpload上传文件代码实例 Base64和AjaxUpload上传文件代码实例是两种常用的文件上传方式,它们都可以实现文件上传到服务器端,但它们之间有着明显的区别。 Base64上传文件是一种基于文本编码的上传方式...

    C#实现AJAX 上传文件,图片,音乐,

    此外,考虑到安全性,应限制上传文件的类型和大小,防止恶意文件上传。 在这个名为`AjaxUploadPic`的项目中,开发者已经实现了一个这样的系统,可能包括了前端的HTML、CSS、JavaScript代码以及后端的C#控制器。通过...

    struts2+jquery+ajax文件异步上传

    在Struts2的配置文件中,我们可以定义这些规则,例如限制上传文件的大小,只接受特定类型的文件(如图片、文档等)。此外,我们还需要关注安全问题,防止恶意文件上传。 文件上传的实现通常包括以下几个步骤: 1. ...

    SpringMVC+Ajax异步文件上传

    在本教程中,我们将探讨如何结合`SpringMVC`和`Ajax`来实现异步文件上传,并讨论短视频背景以及`a`标签绑定文件域的相关知识。 1. **SpringMVC中的文件上传** - **MultipartFile接口**:`SpringMVC`提供了一个名为...

    ajax异步文件上传,servlet处理

    在现代Web应用中,用户经常需要上传文件,如图片、文档等。为了提供更好的用户体验,开发者通常会采用AJAX(Asynchronous JavaScript and XML)技术实现异步文件上传,避免传统方式下页面刷新带来的中断感。AJAX允许...

    Ajax上传文件Demo

    在“Ajax上传文件Demo”中,我们将探讨以下几个关键知识点: 1. **HTML表单设计**:首先,我们需要一个HTML表单让用户选择要上传的文件。`&lt;input type="file" id="fileInput"&gt;` 是一个基本的文件选择控件,`id`属性...

    springmvc ajax 文件上传下载文件 multiple

    Spring MVC提供了强大的支持来处理文件的上传与下载,同时结合AJAX技术,可以实现无刷新的交互体验。在这个场景中,"springmvc ajax 文件上传下载文件 multiple" 涉及到的关键知识点包括: 1. **Spring MVC中的文件...

    ajax上传文件

    在现代Web应用中,"Ajax上传文件"是一个重要的技术,它允许用户在不刷新整个页面的情况下,通过异步方式上传文件。这种方式极大地提升了用户体验,因为它提供了实时反馈,并减少了页面加载时间。下面我们将深入探讨...

    使用AJAX上传文件及表单数据

    这篇博客“使用AJAX上传文件及表单数据”主要讲解了如何利用AJAX实现文件和表单数据的异步提交,提高用户体验。下面我们将详细探讨这一主题。 首先,AJAX的核心是XMLHttpRequest对象,它提供了一种在后台与服务器...

    .net(web form) ajax上传文件demo

    在.NET Web Form中实现AJAX文件上传是一种提升用户体验的有效方式,因为它允许用户在不刷新整个页面的情况下上传文件。本示例使用了`ajaxfileupload.js`脚本库和`.ashx`处理程序来完成这一任务。`ajaxfileupload.js`...

    spring mvc ajax异步文件的上传和普通文件上传

    Ajax上传的优势在于它可以在不刷新页面的情况下完成文件上传,提高用户体验。以下是一个简单的jQuery实现示例: 1. HTML部分: ```html 上传 &lt;div id="progressBar"&gt;&lt;/div&gt; ``` 2. JavaScript部分: ```...

    [上传下载]Ajax UpLoadFile 多个大文件上传控件 v1.15_ltajaxupfilecontrol.zip源码A

    [上传下载]Ajax UpLoadFile 多个大文件上传控件 v1.15_ltajaxupfilecontrol.zip源码A[上传下载]Ajax UpLoadFile 多个大文件上传控件 v1.15_ltajaxupfilecontrol.zip源码A[上传下载]Ajax UpLoadFile 多个大文件上传...

    ajax上传文件图片的demo

    一、AJAX上传文件基础 1. **XMLHttpRequest对象**:AJAX的核心是XMLHttpRequest对象,它允许在不刷新整个页面的情况下,与服务器交换数据并更新部分网页内容。在JavaScript中创建XMLHttpRequest实例,然后通过open...

    ajax实现文件上传

    - `encType`:设置为 `multipart/form-data`,这是上传文件所需的 MIME 类型。 - `method`:设置为 `POST` 方法,以安全地传输文件数据。 - `target`:指定表单提交后的结果将显示在哪个 iframe 中。 2. **...

    Struts AJAX文件上传

    Struts AJAX 文件上传是一种在Java Web开发中实现异步数据传输的技术,它结合了Struts框架和AJAX(Asynchronous JavaScript and XML)的优势,提供了一种用户友好的、无刷新的文件上传方式。这种方式可以显著提升...

Global site tag (gtag.js) - Google Analytics