Ajax文件上传

Ajax文件上传

DOM方式只能获取字符串类型数据,不能获取二进制数据。可以通过FormData对象来获取二进制数据。

<?php
 $path = "./uploads/".$_FILES['face']['name'];
 echo move_uploaded_file($_FILES['face']['tmp_name'],$path);

html页面的业务代码如下:

<script type = "text/javascript">
window.onload = function ()
{
    document . getElementById('btn') . onclick = function () {
        var
        frm = document . getElementById('frm');
        var
        fd = new FormData(frm);
        var
        req = new XMLHttpRequest();
        req . open('post', './6-demo.php');
        req . onreadystatechange = function () {
            if (req . readyState == 4 && req . status == 200) {
                if (req . responseText == '1') {
                    alert('上传成功');
                } else {
                    alert('长传失败');
                }
            }
        }
        req . send(fd);
    }
}
</script>
<form id = 'frm'><!--不需要enctype属性-->
用户名:<input type = "text" name = "username" id = ""><br>
头像:<input type = "file" name = "face" id = ""><br>
<input type = "button" value = "注册" id = 'btn'>
</form>
通过FormData对象收集二进制数据不需要设置<form>的enctype属性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Spring MVC和AJAX文件上传下载,你可以按照以下步骤操作: 文件上传: 1. 创建一个包含文件上传表单的HTML页面。 2. 创建一个Spring MVC控制器,用于处理文件上传的请求。 3. 在控制器中,使用`@RequestMapping`注解来映射文件上传的URL,并使用`@RequestParam`注解来接收文件。 4. 在处理方法中,使用MultipartFile参数来接收上传的文件,并使用`transferTo()`方法将文件保存到指定位置。 文件下载: 1. 创建一个Spring MVC控制器,用于处理文件下载的请求。 2. 在控制器中,使用`@RequestMapping`注解来映射文件下载的URL。 3. 在处理方法中,使用`@PathVariable`注解来接收文件名参数。 4. 使用`ServletContext`对象获取文件路径,并创建一个`File`对象。 5. 使用`ResponseEntity`类设置下载响应的头部信息和内容。 通过AJAX实现文件上传和下载: 1. 使用JavaScript创建一个AJAX请求对象。 2. 使用FormData对象将文件添加到请求中。 3. 发送AJAX请求到Spring MVC控制器的URL,并设置请求方法为POST。 4. 在Spring MVC控制器中,使用MultipartFile参数接收文件,并处理文件上传的逻辑。 5. 在返回的响应中,可以包含上传成功或失败的消息。 注意:在Spring配置文件中,需要配置multipart解析器来支持文件上传。 以上是实现Spring MVC和AJAX文件上传下载的一般步骤,你可以根据具体需求进行适当的调整和扩展。希望对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值