form 表单 上传文件

6 篇文章 0 订阅

前端页面部分:

1、form 表单action提交 乱码:method="POST" 

2、文件上传 需要: enctype="multipart/form-data"

3、通过fform表单提交数据,处理返回参数 思路:

<form id="importBookForm" action="uploadReadBook.action" encType="multipart/form-data" method="post" target="hidden_frame">

<input id="myFile" name="myFile" type="File" /></a>

<input id="submit" class="btn" type="submit" value="导入资源">

</form>

<iframe name='hidden_frame' id="hidden_frame" style='display: none'></iframe>

 

 

$('#hidden_frame').load(function(){
    var text=$(this).contents().find("body").text();
       // 根据后台返回值处理结果
    var j=$.parseJSON(text);
    if(j.status!=0) {
        alert(j.msg);
    } else {
        alert('导入成功');
        //location.href='BookResourceList.jsp'
    }
});

 

在返回的数据里面做页面判断,关闭当前子窗口,frame窗口

 

后台springmvc部分:

情景描述:

本上使用的就是springmvc的ResponseEntity来做的,问题是下载的文件总是提示【文件损坏】导致打不开,word,excel,zip文件统统打不开 ,主要就是配置文件里的顺序:加粗部分要放在MappingJackson2HttpMessageConverter的前面,修改之后问题解决!  (参考下 前辈的 帖子 http://www.iteye.com/topic/1125784

 

首先看下 springmvc配置文件

 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
         <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
                <bean
                    class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>application/json;charset=UTF-8</value>
                            <value>text/json;charset=UTF-8</value>
                            <value>text/html;charset=UTF-8</value>
                        </list>
                    </property>
                </bean>
                <bean
                    class="org.springframework.http.converter.StringHttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>text/plain;charset=UTF-8</value>
                        </list>
                    </property>
                </bean>
                
            </list>
        </property>
    </bean>

 

java 代码:

 

package com.clj.test.down.util;
 
import java.io.File;
import java.io.IOException;
 
import org.apache.commons.io.FileUtils;
import org.springframework.context.annotation.Scope;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;
 
/**
 * <一句话功能简述>
 * <功能详细描述>
 * 
 * @author fy
 * @version  [2018年7月17日]
 *
 * 
 */
@Component
@Scope("prototype") 
@RequestMapping("/downloadFile")
public class DownloadAction
{
 
    @RequestMapping("download")  
    public ResponseEntity<byte[]> download() throws IOException {  
        String path="D:\\workspace\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0\\wtpwebapps\\springMVC\\WEB-INF\\upload\\nbsxs.xlsx";
        File file=new File(path);
        HttpHeaders headers = new HttpHeaders();  
        String fileName=new String("你好.xlsx".getBytes("UTF-8"),"iso-8859-1");//为了解决中文名称乱码问题
        headers.setContentDispositionFormData("attachment", fileName); 
        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); 
        return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),  
                                          headers, HttpStatus.CREATED);  
    }  
}

spring 配置 https://blog.csdn.net/clj198606061111/article/details/20743769

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值