SSM + AJAX + FormData上传文件

2 篇文章 0 订阅

不废话,直接上代码

<table id="tb_bookdetail"  border="1px" cellspacing="0px" cellpadding="0px">
<form action="${pageContext.request.contextPath}/addBook" enctype="multipart/form-data" method="post" id="bookform">
	<tr>
		<td id="td1"><span id="k_bookname">书名:</span></td>
		<td id="td2"><span id="v_bookname"><input type="text" id="bookname" name="bookname"></span></td>
		<td id="td3"><span id="k_ISBN">ISBN:</span></td>
		<td id="td4"><span id="v_ISBN"><input type="text" name="ISBN"></span></td>
	</tr>
	<tr>
		<td><span id="k_bookauthor">作者:</span></td>
		<td><span id="v_bookauthor"><input type="text" name="author"></span></td>
		<td><span id="k_pic">封面:</span></td>
		<td>
			<span id="v_pic"><img id="book_pic" width="60px" height="60pxs" src="${pageContext.request.contextPath}/img/search.png"></span>
			<input type="file" id="multipartFile" name="multipartFile"/>
		</td>
	</tr>
	<tr>
		<td><span id="k_ishot">是否热门:</span></td>
		<td><span id="v_ishot"><input type="checkbox" name="ishot"></span></td>
		<td><span id="k_introduce">简介:</span></td>
		<td colspan="2"><span id="v_introduce"><textarea id="introduce" name="introduce"></textarea></span></td>
	</tr>
</form>
<tr>
    <td colspan="2"><input type="reset" id="reset" name="reset"/></td>
    <td colspan="2"><button id="btn_submit" name="btn_submit">提交</button></td>
</tr>
</table>
 @RequestMapping("/addBook")
    @ResponseBody
    public Book addBook(BookCustom bookCustom) throws Exception {
        System.out.println(bookCustom);
        String originalFilename = bookCustom.getMultipartFile().getOriginalFilename();
        String filename = UUID.randomUUID()+originalFilename.substring(originalFilename.lastIndexOf("."));
        String fpath = path + filename;
        BookQueryVo bookQueryVo = new BookQueryVo();
        bookCustom.setPic(filename);
        bookQueryVo.setBookCustom(bookCustom);
        bookService.insertBook(bookQueryVo);
        File file = new File(fpath);
        bookCustom.getMultipartFile().transferTo(file);
        Book book = new Book();
        BeanUtils.copyProperties(bookCustom,book);
        return book;
    }
<script>
    $(function () {
        var form = document.getElementById("bookform");
        $("#btn_submit").click(function () {
            var formData = new FormData(form);
            $.ajax({
                url:"${pageContext.request.contextPath}/addBook",
                type:"post",
                dataType:"json",
                data:formData,
                cache:false,
                processData:false,
                contentType:false,
                success:function (data) {
                    alert("success");
                },
                error:function(data){
                    alert("网络连接错误");
                }
            });
        });
    });
</script>

注意一点就是$(#btn_submit)只是单纯的button元素(没有在表单内!),如果放在表单内或者直接使用submit类型则回自动提交表单,收到json数据后跳转页面,直接显示json数据,达不到刷新页面数据的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值