更新时间:2022-03-17 11:14:47 来源:极悦 浏览1343次
上传文件,也可以使用form表单向后端发送请求,也可以使用ajax向后端发送请求
Send a request to the back end through the form table
改进后的代码不需要表单标签,直接由控件实现。开发者只需要关注业务逻辑。JS 已为我们关闭
通过监控工具可以看到控件提交的数据,非常清晰,调试也非常简单。
$.ajax({
url : "${pageContext.request.contextPath}/UploadServlet",
type : "POST",
data : $( '#postForm').serialize(),
success : function(data) {
$( '#serverResponse').html(data);
},
error : function(data) {
$( '#serverResponse').html(data.status + " : " + data.statusText + " : " + data.responseText);
}
});
AJAX 分为两部分。一部分是初始化。在上传文件之前,通过ajax请求通知服务器初始化
文件上传后向服务器发送通知
在这里,我们需要处理一下MD5秒传的逻辑。当服务器有相同文件时,用户无需再次上传,直接通知用户二次传输
这里我们可以看到二次传输的逻辑很简单,不是特别复杂。
var form = new FormData();
form.append("username","zxj");
form.append("avatar",file);
//var form = new FormData($("#postForm")[0]);
$.ajax({
url:"${pageContext.request.contextPath}/UploadServlet",
type:"post",
data:form,
processData:false,
contentType:false,
success:function(data){
console.log(data);
}
});
java**部分**
文件初始化逻辑
接收文件块数据。在这个逻辑中,我们接收文件块数据。控制优化数据,方便调试。如果使用监控工具,可以看到控件提交的数据。
笔记:
(1)上面的java代码可以直接使用。只需要上传图片路径和采集数据,将数据写入数据库
(2)字节流用于上面上传的文件。实际上,可以使用其他流。读者需要改进下面的测试
(3)BeanUtils 是一个将实体对应的属性分配给实体的工具
(4)上传文件时不能使用request.getparameter(“”)获取参数。而是可以直接解析请求,判断每一项是否为文件,然后进行相应的操作(如果文件是流则读取,如果不是文件则暂时保存到一个地图。)
以上就是关于“JavaWeb实现文件上传的示例”介绍,大家如果想了解更多相关知识,可以关注一下极悦的JavaWeb学习视频,里面的课程内容细致全面,由浅到深,通俗易懂,即使没有基础也可以听懂,相信对大家的学习一定会有所帮助的。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习