附件上传、下载和移除

前面写过文件的上传和下载,现在写一下附件的上传和下载,这个文件的上传和下载的后面一般都跟着附件的上传和下载的。
和之前的一样,上传附件的话首先要做的还是查询一下上传的附件,不然都不知道是否要上传附件,不查询一下的话没办法知道上传的是哪一个附件。而这个文件大多讲的是图片文件,当然也有其他的文件的
附件可能涉及到的比较多,所以得分一下页,前面应该也讲过分页的操作,所以在这里就不重复地讲了
首先在页面上,获取到文件,用prop方法提交上去;
接着写一个if循环判断文件的长度,然后限制文件的大小,为20兆,也就是我们经常说的20MB;
到这一步就可以开始上传文件了,不过上传文件需要使用XHLHttpRequset,再new一个FormData的对象,将第一个文件放入FormData当中去;

//====开始文件上传--使用XMLHttpRequest
//=new一个FormData对象
var fd = new FormData();
  //=将第一个文件放入FormData
fd.append("attachmentFile", files[0]);

再new一个XHLHttpRequset的对象,然后注册一下监听事件,再写一下发送成功的事件;
发送成功之后当然就得关闭一下加载层了;

//关闭加载层
layer.close(layerIndex); 

再来一个if,状态改成true,然后刷新一下附件列表,再给它reload一下表,发送成功的话就弹出一个提示框,否则也弹出一个提示框,只不过两个框的内容不一样,成功的就说明上传成功、失败的当然就弹出上传失败了。不过上传失败还是要写一个事件的;
如果没有上传失败,那就有一个上传的进度onprogress,而且这个进度还是会不断得被调用的
console.log(event.total + “—>” + event.loaded + “----->” + (event.loaded / event.total * 100) + “%”);
这一串代码解释就是:这个event. total是需要传输的总字节,而那个event.loaded呢就是已传输的字节。如果判断的那个括号里的参数不为真的话,那么event.total就会等于0,就是不上传;
而文件的上传一定要用POST的方式提交
最后就是发送数据了。
若这些操作都没有任何问题,那么,成功上传附件,若有问题的话,就要进行一系列的判断了,最好就是写完一步的功能了,就测试一下,而那个功能有什么逻辑的话就写一个判断语句,这样逻辑清晰。
上传附件还需要添加一下按钮,这个按钮作用就是鼠标用来点击之后添加上附件的,因为没有写上这个按钮的样式,所以可以在script标签那里用jQurey语言添加这个按钮上去,并且写上点击事件,然后就可以触发然后上传附件了

//添加附件按钮
     $("#btnUploadAttachment").click(function () {
            $("#getAttachmentFile").click();
  });

上面第一个$里面放的是前面写HTML的样式中的那个按钮的ID

<div class="col-auto">
    <button class="btn btn-primary btn-sm" type="button" id="btnUploadAttachment">添加附件</button>
</div>

第二个$则是前面附件上传表单那里给定的那个ID
@附件文件上传表单@

<div style="display: none">
    <input type="file" name="file" id="getAttachmentFile" class="form-control" />
</div>

接着就是要写上给定的那个ID的改变事件,也就是getAttachmentFile这个ID,用一个change事件来写,里面也会有限制文件的大小,并且还会注册一个监听事件,监听上传附件的情况,里面肯定会涉及到if如果语句,如果上传成功的话,那么就一个判断上传成功,要是失败的话就直接关闭加载层了。
那么移除文件的话
不多,就几句代码的事
在这里插入图片描述
但是就几句简单的代码在页面写完之后也要在控制器那边写一下
首先得获取到session中的文件表,然后再判断它是否为null,如果为空的话就直接跳出循环,最后直接return返回就可以了。
在这里插入图片描述
先点击那个图片的标志,然后弹出一个框,点击上传,然后点击选择文件就会弹出文件选择的一个框,就可以选择点击要上传的文件了,然后点击完之后就可以上传附件文件了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值