MultipartFile上传文件数据库保存进了但是target里面没有图片?

用ajax做的添加,然后传过去的序列化,追加了一个图像的路径,controller层添加方法里面创建了个multipartFile(这是一个集合),只修改了重写的获取图像名称的方法,然后一直到后面的transferto,都执行成功,文件夹创建出来了,数据库路劲也添加正常了,但是target里面创建出来的文件夹里面没有我上传的图片第一张图片是执行完之后MultipartFile的信息,之后的是代码
最新回答
被自己宠坏的小仙女

2024-06-24 02:17:18

这里,我只想总结一下我一下午研究文件上传,图片上传功能的思考。也许花费了很多时间,但还是觉得比较值的。

以前一直听说过“项目使用的所有图片应该保存在图片服务器上,”一直看过这样的代码:Java后端由各种流组成的处理图片或着文件的方法。当时其实都是朦胧的,似懂非懂的样子。现在或许是有那么的一点理解了:当项目或者具体说页面中存在大量的图片时,页面的加载可能会很慢,这时,可能就需要使用一个独立的服务器来专门的读取这些图片了, 所以才有了图片服务器的说法。(或许是这样)。

图片上传功能的具体实现(当然文件也一样):

总的来说是这样的, 我们在页面上通过按钮获取到某张图片后,会显示在页面上(如果你需要的话),显示的可以是图片本身,或者是图片的名字。然后通过ajax,把图片传到了Java后台,(以什么格式我还不清楚),根据我这一下午的实践,MultipartFile ,这个类可以完全接收到前台传过来的图片数据。,这里也许有人会问, 传到后台干嘛呢。假设你的前端调用的不是你本项目的Java后台代码,而是另外一个接口Api项目的话, 那么,其实,这个APi项目就可以当作一个图片服务器了。额,这里仅仅是临时保存了图片而已,就页面而言,如果是表单,你还需要提交表单。那么表单提交时,你还会保存图片吗?应该是存图片在服务器上的地址吧。

MultipartFile 通过 MultipartFile .transferTo( new File()), 仅需要这步骤,就可以把图片存到服务器所在的电脑的任意一个盘或者路径里面。 其实这个很简单,难是难在 文件的创建。(坑了我很久),

new File("d:/test1/test2/test3/demo.png"), 类似要创建这样的 File文件时, 你要先判断demo.png 的父级路径是否存在,如果不存在则要先创建。否则你也许会报一个错误,“java.io.FileNotFoundException 拒绝访问”.

也许废话说了很多,下面直接上示例代码, 本实例代码亲测有效可用。本实例 前端采用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/mytags.jsp" %>
</head>
<body>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
<legend>常规使用:普通图片
ヾ下落不明

2024-06-24 14:40:17

在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表格数据、上传影音文件等。如果文件体积比较大,或者网络条件不好时,上传的时间会比较长(要传输更多的报文,丢包重传的概率也更大),用户不能刷新页面,只能耐心等待请求完成。

下面从文件上传方式入手,整理大文件上传的思路,并给出了相关实例代码,由于PHP内置了比较方便的文件拆分和拼接方法,因此服务端代码使用PHP进行示例编写。

文件上传的几种方式

首先我们来看看文件上传的几种方式。

普通表单上传

使用PHP来展示常规的表单上传是一个不错的选择。首先构建文件上传的表单,并指定表单的提交内容类型为enctype="multipart/form-data",表明表单需要上传二进制数据。
尛步格调ゝ

2024-06-24 08:31:34

file.getPath();是指用户选择的客户端文件路径,与上传前的路径无关的。你需要取到服务器相对路径。action具体代码如下UploadForm uploadForm = (UploadForm) form; FormFile myfile = uploadForm.getMyfile();byte[] data = myfile.getFileData();ServletContext application = this.getServlet().getServletContext();String fileName = myfile.getFileName();String realPath = application.getRealPath("/temp/");//应用服务器temp的相对路径FileOutputStream fos = new FileOutputStream(realPath + "/" + fileName);//文件输出流fos.write(data);//将文件上传至temp目录下

搜索
文件上传功能本地存储
怎样彻底删除temp
电脑temp可以删除吗
java相对路径怎么写
电脑c盘的temp是什么
前端获取数据的方式