这里,我只想总结一下我一下午研究文件上传,上传功能的思考。也许花费了很多时间,但还是觉得比较值的。
以前一直听说过“项目使用的所有应该保存在服务器上,”一直看过这样的代码:Java后端由各种流组成的处理或着文件的方法。当时其实都是朦胧的,似懂非懂的样子。现在或许是有那么的一点理解了:当项目或者具体说页面中存在大量的时,页面的加载可能会很慢,这时,可能就需要使用一个独立的服务器来专门的读取这些了, 所以才有了服务器的说法。(或许是这样)。
上传功能的具体实现(当然文件也一样):
总的来说是这样的, 我们在页面上通过按钮获取到某张后,会显示在页面上(如果你需要的话),显示的可以是本身,或者是的名字。然后通过ajax,把传到了Java后台,(以什么格式我还不清楚),根据我这一下午的实践,MultipartFile ,这个类可以完全接收到前台传过来的数据。,这里也许有人会问, 传到后台干嘛呢。假设你的前端调用的不是你本项目的Java后台代码,而是另外一个接口Api项目的话, 那么,其实,这个APi项目就可以当作一个服务器了。额,这里仅仅是临时保存了而已,就页面而言,如果是表单,你还需要提交表单。那么表单提交时,你还会保存吗?应该是存在服务器上的地址吧。
MultipartFile 通过 MultipartFile transferTo( new File()), 仅需要这步骤,就可以把存到服务器所在的电脑的任意一个盘或者路径里面。 其实这个很简单,难是难在 文件的创建。(坑了我很久),
new File("d:/test1/test2/test3/demopng"), 类似要创建这样的 File文件时, 你要先判断demopng 的父级路径是否存在,如果不存在则要先创建。否则你也许会报一个错误,“javaioFileNotFoundException 拒绝访问”
也许废话说了很多,下面直接上示例代码, 本实例代码亲测有效可用。本实例 前端采用layui + 后端 springMVC+MultipartFile
页面jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>文件上传demo</title>
<%@include file="/comm/mytagsjsp" %>
</head>
<body>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
<legend>常规使用:普通
(1)在spring mvc的配置文件中配置:
<bean id="multipartResolver" class="orgspringframeworkwebmultipartcommonsCommonsMultipartResolver"><property name="uploadTempDir" value="/tmp" /> <!-- 临时目录 -->
<property name="maxUploadSize" value="10485760"/> <!-- 10M -->
</bean>
(2)文件上传表单和结果展示页fileuploadjsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@taglib prefix="mvc" uri=";
(3)后台处理UploadControllerjava:
package cnzifangskycontroller;import javaioFile;
import javaioIOException;
import javaxservlet>}
在上面的upload方法中,为了接收上传的文件,因此使用了一个MultipartFile类型的变量来接收上传的临时文件,同时为了给文件进行重命名,我调用了一个renameFileName方法,这个方法的具体内容如下:
/文件重命名
/
public static String renameFileName(String fileName) {
String formatDate = new SimpleDateFormat("yyMMddHHmmss")format(new Date()); // 当前时间字符串
int random = new Random()nextInt(10000);
String extension = fileNamesubstring(fileNamelastIndexOf("")); // 文件后缀
return formatDate + random + extension;
}
注:上面用到的model——Userjava:
package cnzifangskymodel;public class User {
private String userName; // 用户名
private String logoSrc; // 头像地址
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
thisuserName = userName;
}
public String getLogoSrc() {
return logoSrc;
}
public void setLogoSrc(String logoSrc) {
thislogoSrc = logoSrc;
}
}
至此全部结束
效果如下:
(PS:纯手打,望采纳)
以上就是关于MultipartFile上传文件数据库保存进了但是target里面没有图片全部的内容,包括:MultipartFile上传文件数据库保存进了但是target里面没有图片、如何在spring mvc中上传图片并显示出来、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)