Javaweb文件上传的前端和后端
2018-09-01 05:42:30来源:博客园 阅读 ()
上传文件的分类:
无论什么方式上传文件,都要用post提交
方式一:
前端:表单方式上传文件
<form action="" method="post" enctype="multipart/form-data">
<!--非文件域-->
<input type="text" name="desc"/>
<!--文件域-->
<input type="file" name="userHead" />
<input type="submit" value="上传"/>
</form>
后端:
使用上传技术是apache中的Commons-fileupload.jar
commons-io.jar
servlet:
1.在表单提交的时候把表单中的所有的数据封装给request对象
2.通过commons-fileupload的api方法转换request对象
中的数据到一个List集合中
// Parse the request
List<FileItem> items = upload.parseRequest(request);
3.遍历 list集合,集合中都包含表单中所有的数据
包含文件域和非文件域
// Process the uploaded items
Iterator<FileItem> iter = items.iterator();
while (iter.hasNext()) {
FileItem item = iter.next();
if (item.isFormField()) {
//是非文件域
String name = item.getFieldName();
String value = item.getString();
...
} else {
//文件域
String fieldName = item.getFieldName();
String fileName = item.getName();
String contentType = item.getContentType();
boolean isInMemory = item.isInMemory();
long sizeInBytes = item.getSize();
...
//真正上传文件
item.write(服务端的某个目录)
}
}
spring mvc:
在springmvc中底层使用还是commons-fileupload.jar
和commons-io.jar,说明spring mvc对apache的Commons-fileupload
产品做二次封装,封装成:org.springframework.web.multipart.commons.CommonsMultipartResolver
在springmvc上传文件api用CommonsMultipartResolver类中的api
<!-- spring mvc 文件上传 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--能配置多少个property,可以查文档和查询源代码 -->
<!--最大上传文件的大小 -->
<property name="maxUploadSize" value="8388608"></property>
<property name="resolveLazily" value="true"></property>
</bean>
用springmvc的api上传文件
MultipartFile的对象调用一个上传方法
对象.transto();把文件上传到指定的服务器上
方式二:
前端:没有表单,用ajax上传文件,必须借助第三方
js工具ajaxfileupload.js,类似的上传文件
的js工具有很多,ajaxfileupload.js工具是基于
jquery库
//异步提交
$.ajaxFileUpload({
url:basePath+"user/new",//提交的服务器地址
secureuri:false,//url链接是否安全
fileElementId:"addHeadPicture",//文件域的id
type:"post",//必须是post提交
data:{"loginName":loginName,"password":password1,"nickName":nickName,"age":age,"sex":sex,"roleId":roleId},//传递的数据
dataType:"text",//注意text,可以写成json
success:function(data,status){
//alert(data);
//回的结果串中有其他的字符串,通过下面的方式
//把没用的字符串替换掉
data=data.replace(/<PRE.*?>/g,'');
data=data.replace("<PRE>",'');
data=data.replace("</PRE>",'');
data=data.replace(/<pre.*?>/g,'');
data=data.replace("<pre>",'');
data=data.replace("</pre>",'');
alert(data);
},
error:function(){
alert("请求失败!");
}
});
后端:
使用上传技术是apache中的Commons-fileupload.jar
commons-io.jar
servlet:
1.在表单提交的时候把表单中的所有的数据封装给request对象
2.通过commons-fileupload的api方法转换request对象
中的数据到一个List集合中
// Parse the request
List<FileItem> items = upload.parseRequest(request);
3.遍历 list集合,集合中都包含表单中所有的数据
包含文件域和非文件域
// Process the uploaded items
Iterator<FileItem> iter = items.iterator();
while (iter.hasNext()) {
FileItem item = iter.next();
if (item.isFormField()) {
//是非文件域
String name = item.getFieldName();
String value = item.getString();
...
} else {
//文件域
String fieldName = item.getFieldName();
String fileName = item.getName();
String contentType = item.getContentType();
boolean isInMemory = item.isInMemory();
long sizeInBytes = item.getSize();
...
//真正上传文件
item.write(服务端的某个目录)
}
}
spring mvc:
在springmvc中底层使用还是commons-fileupload.jar
和commons-io.jar,说明spring mvc对apache的Commons-fileupload
产品做二次封装,封装成:org.springframework.web.multipart.commons.CommonsMultipartResolver
在springmvc上传文件api用CommonsMultipartResolver类中的api
<!-- spring mvc 文件上传 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--能配置多少个property,可以查文档和查询源代码 -->
<!--最大上传文件的大小 -->
<property name="maxUploadSize" value="8388608"></property>
<property name="resolveLazily" value="true"></property>
</bean>
用springmvc的api上传文件
MultipartFile的对象调用一个上传方法
对象.transferTo();把文件上传到指定的服务器上
补充:
能够给服务端提交数据的方式
1.用form表单
2.用超链接
3.用ajax异步提交
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 构建自己的jar包上传至Mvaen中央仓库和版本更新 2020-06-11
- Spring Boot 实现配置文件加解密原理 2020-06-08
- Java跨平台原理(字节码文件、虚拟机) 以及Java安全性 2020-06-07
- 【Java-jxl插件】【Excel文件读写报错】jxl.read.biff.BiffE 2020-06-07
- IDEA下Maven的pom文件导入依赖出现Auto build completed wit 2020-06-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash