文件上传(表单上传和ajax异步上传)

一、表单上传

html客户端部分:


<form action="upload.ashx" method="post" enctype="multipart/form-data">
        选择文件:<input type="file" name="file1" /><br />
        <input type="submit" value="上传" />
    </form>

程序后台服务端:

        @ResponseBody
	@RequestMapping(value = "/xxx",method = RequestMethod.POST)
	public String xxx(@RequestParam("myfile") MultipartFile file)throws IOException{
		//上传文件
		String url = "D:/" + "upload/";
		//后缀
		String suffic = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
		//文件名
		String fname =file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf("."));
		
	    String fileName = fname+System.currentTimeMillis()+suffic;
		String fileType = fileName.substring(fileName.lastIndexOf(".") + 1);
		fileType = fileType.toLowerCase();
		FileUtils.copyInputStreamToFile(file.getInputStream(), new File(url, fileName));
		
		return "";
	}

二、ajax异步上传

html客户端部分:

<input id="resume_name" type="file" >
<input class="btn_success" type="button" id="upload" value="提交" />
<script src="jquery-2.1.4.js"></script>
    <script>
        $(function () {
            $("#upload").click(function () {
                $("#imgWait").show();
                var formData = new FormData();
                formData.append("myfile", document.getElementById("resume_name").files[0]);   
                $.ajax({
                    url: "upload.ashx",
                    type: "POST",
                    data: formData,
                    /**
                    *必须false才会自动加上正确的Content-Type
                    */
                    contentType: false,
                    /**
                    * 必须false才会避开jQuery对 formdata 的默认处理
                    * XMLHttpRequest会对 formdata 进行正确的处理
                    */
                    processData: false,
                    success: function (data) {
                        if (data.status == "true") {
                            alert("上传成功!");
                        }
                        if (data.status == "error") {
                            alert(data.msg);
                        }
                        $("#imgWait").hide();
                    },
                    error: function () {
                        alert("上传失败!");
                        $("#imgWait").hide();
                    }
                });
            });
        });
    </script>

程序后台服务端:

@ResponseBody
	@RequestMapping(value = "/xxx",method = RequestMethod.POST)
	public String xxx(@RequestParam("myfile") MultipartFile file)throws IOException{
		//上传文件
		String url = "D:/" + "upload/";
		//后缀
		String suffic = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
		//文件名
		String fname =file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf("."));
		
	    String fileName = fname+System.currentTimeMillis()+suffic;
		String fileType = fileName.substring(fileName.lastIndexOf(".") + 1);
		fileType = fileType.toLowerCase();
		FileUtils.copyInputStreamToFile(file.getInputStream(), new File(url, fileName));
		
		return "";
	}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值