当前课程知识点:软件开发实训--动态网站开发 > 12 UEditor富文本编辑器 > 12.4文件上传问题处理 > 12.4.1文件上传问题处理
同学你好
欢迎回到软件开发实训课堂
上节课我们把图片对画框已经使用起来了
但是在上传图片时遇到了问题
这节课我们来看一下这些问题该怎么处理
在打开对话框的时候
我们发现他有一个错误
说后台后端配置项没有正常加载
这是因为他在加载配置文件时
没有找到配置文件
我们需要纠正一下它的配置文件加载路径
打开我们的项目
在ueditor这个ui的项目里边
找到GSP文件夹
下面有一个config.json
我们把它移动到我们的目录下去
我们就直接复制一份
把它移过去
移到哪里
放在我们的
百度加载的包里边
我们看哪一个文件加载了它
来看一下
配置manager应该是manager
加载了他
我们来看是不是manager
这在加载这个文件看一下
确实是manager在加载
那么这个文件加载它在什么地方
我们把这个注释掉
然后把我们的配置文件给它粘到这里来
这样我们配置文件就过来了
注释掉这个文件名后
他会出一个错误在这里
说获得配置文件的路径
这块有错
然后我们去找到谁来调用这个方法
我们在本地里边先找一个
把它注释掉就知道了
找到加载的位置
readfile读取文件这块来调用这个方法来返回
我们的文件路径为readfile这个函数
它要的是一个字符串路径
我们把它改掉
在这里
它需要一个流
我们直接给它一个流
input
stream
config
就等于当前这个类configmangae
一定要写对
点
class
点
getresource
注意看它可以作为流来进行处理
那么路径我们直接给出这个文件名就可以了
现在把我们的文件名打开
复制它
这样就得到了一个输入流
把输入流交给流就可以了
这样就替换了他的方法调用
然后这里边实际上已经不需要了
这里边pass可以
取消了
不用读文件路径
取消后这里面也一样的就不要了
无需传递任何参数
直接加载配置文件就可以了
现在我们再来看一下
它的上传功能是否正常
打开浏览器
看一下
上传插件不能正常使用
这里边看一下 文件
我们需要把它传过去
打开我们的项目文件
pom.xml来看一下
java下面没有上传
所以只有properties和include
这里我们加上一项
把json文件也包含进来
这样Java目录下的json就可以被发布到
我们需要的产品目录下目标目录下
这样的话 就可以运行它了
我们直接发布一下
清理并构建
这样目标位置就会被删掉
重新发布
把我们需要的内容都给它复制过去
目标位置就在文件夹下
根据自己的机器创建的项目位置去找他
可以看到他是否已经存在
好
修改完成后我们重新登录
打开对话框
你会看到一个本地上传中出现了
点击选择图片说明我们的后端配置已经完成
这样你就可以上传图片了
当你上传成功后
你就可以选择这个图片
点击上传
出现了405错误
我们来看一下405
在我们的项目后台看看有没有错误
这里边它需要一个post请求
所以我们还需要把我们的控制器进行修改
改成request mapping
这样的话无论是 的请求
还是pose的请求都可以实现
我们登录后
再来看
上传成功
但是显示未找到上传数据
来看一下他的错误消息
说得不到
SRC这个数据我们来看一下
它的S2返回的是什么
我们输出C数据
重新刷新
选择一张图片我们上传
这个是虽然上传成功了
但是他并没有得到这个图片
看一下
这个是
这是我们需要的路径
它不存在
我们来找一下我们的路径
看看它存到了什么位置上
这是配置文件里面
去找一下
好
执行上传图片的action名称
提交图片表单名称
我们的图片字段不需要改
这是因为它的框架的名称
我们来看一下
这是它的类型
是否压缩
没有存储位置
我们把这个路径给它改掉
直接就是upload下面的image
其它的路径我们不存在
只有一个upload
所以也不需要 之类的
目录了
在我们的根目录下有一个up load
这个是存在的
把所有的有关这样的路径都给它改过来
上传视频的路径
上传其他文件的路径
改完后我们重新发布它
我们重新测试我们的上传
开始上传
找到这个错误消息
看一下这个错误消息是什么原因引起的
在这里
文件上传时出现了错误
我们来看一下错误的类型是什么
把他错误消息打印出来
加一个确认的方法
我们通过
调试的模式来运行他的程序来监控一下
设置一个断点
来看一下
我们再次上传看一下
这个就过来了
然后我们跟踪一下到底是发生了什么错误
可见我们的文件流是空的
并没有得到上传的内容
我们来看一下
它返回一个new best
这个消息是未知类型的错误
给出的错误
我们无法正常上传图片
那么在这里我们需要把它改成
自身的文件上传的相关包
我们来看一下
首先我们来判断
是否上传的
请求是一个文件上传请求
我们来做修改
先把前面这些变量都删了
判断是否为 请求可以留下
然后我们来判断它是否多文件
这里边用spring提供的方式来判断
说如果
请求对象instanceof
multi
http server let
这是一个多部分请求
就是文件上传的请求
如果他是这个类型
就说明他是一个文件上传的
请求
如果他是这个请求
我们就把为request给它转换成
文件上传的请求
这些个我们就可以不需要了
如果说是 请求
把编码设置为UTA8格式
那么这里设置编码的格式是
setcharacterencoding
我们需要捕获异常
把所有的异常都给它捕获进来
catch
设置编码完成后
我们就判断一下他是否上传了文件
如果M2点get
multifilemap
镜像它的尺寸是小于等于0的
这就说明它没有返回数据
所以我们就return一个new besestate
把它返回去
false
notfound
没有上传的数据
如果说它大于零
我们就获取这些数据
iterator
multipart
file iterator
Mr.get
filemap
得到我们所有的文件结合
values
iterator获得枚举
我们便利所有文件
我们把上面这些全部删掉
把有用的留下
先得到第一个文件
while tierator
hasnext
存在下一个文件
我们就去获取它
multipartfile
得到文件后
我们把下面的这些信息拿出来
第一个是储存的路径
我们依然用他原来的代码
第二个
获取文件名
包括后缀
这些个都可以拿得到
我们把这些内容给它放进去
格式化一下代码
文件名的获取
通过file对象的get
originalfilename
初始化名称
来得到相关的名字
下面这个可以不变
得到后缀得到最大值
我们来看一下
下面还有错误
这是得到文件流
file
我们获得输入流
把它改成getinputstream
这样我们的文件就修改完成了
我们重新来进行文件上传看一下
把代码格式化一下
重新登录
要确保我们的文件是上传成功的
浏览
点击图片选择
开始文件上传
如果你能看到勾的话
说明我们的文件是上传成功的
点击确定
这样的在控制台你就看到数据已经过来了
打开我们的模板文件
把这个注释去掉
让图片显示出来
重新刷新
上传
然后确定
这样我们就得到了我们需要的图片
好
有关 它的图片对话框以及文件的
上传就讲到这里
我们下节课再见
-1.1课程介绍
--1.1.3随堂测试
-1.2网站需求分析
--1.2.4随堂测试
-1.3网站首页分析
--1.3.3随堂测试
-1.4导航菜单分析
--1.4.3随堂测试
-1.5内容区域分析
--1.5.3随堂测试
-1.6内容副页面分析
-1.7编写需求文档
-2.1后端页面总体分析
--2.1.3随堂测试
-2.2用户管理功能设计
--2.2.3随堂测试
-2.3内容与分类功能分析
--2.3.3随堂测试
-2.4网站配置功能设计
--2.4.4随堂测试
-2.5数据库及表结构分析
-总体设计文档
-3.1前台模板约定
--3.1.3随堂测试
-3.2网站配置接口设计
--3.2.3随堂测试
-3.3菜单接口设计
--3.3.3随堂测试
-3.4内容接口设计
--3.4.3随堂测试
-3.5幻灯片接口设计
--3.5.3随堂测试
-补充设计文档
-4.1用户管理功能设计
--4.1.3随堂测试
-4.2菜单管理功能设计
--4.2.3随堂测试
-4.3内容管理功能设计
--4.3.3随堂测试
-4.4网站配置信息设计
--4.4.3随堂测试
-完成设计文档
-4.6随堂测试
-5.1开发环境搭建
--5.1.2随堂测试
-5.2Web前端环境搭建
-5.3创建用户实体
--5.3.2随堂测试
-5.4用户实体表创建与初始化
--5.4.2随堂测试
-5.5用户数据访问接口实现
--5.5.2随堂测试
-5.6环境搭建问题
-6.1用户服务层接口实现
--6.1.2随堂测试
-6.2用户列表和编辑控制器实现
--6.2.2随堂测试
-6.3用户存储和删除控制器实现
-6.4用户添加、编辑界面实现
-6.5用户管理添加用户调试
-7.1用户查询模板实现
--7.1.2随堂测试
-7.2用户信息编辑的实现
-7.3单个用户删除实现
-7.4多个用户删除实现
-8.1用户列表分页基本实现
-8.2用户列表查询结果分页实现
-8.3通用日期处理
-8.4整型日期处理
--8.4.2随堂测试
-8.5枚举数据的应用
-9.1登录逻辑实现
--9.1.2随堂测试
-9.2登录界面及流程调试
--9.2.2随堂测试
-9.3管理主界面实现
--9.3.2随堂测试
-9.4授权验证拦截器实现
--9.4.2随堂测试
-9.5拦截器调试
-10.1分类接口实现
-10.2分类添加、编辑实现
-10.3分类树结构实现
-10.4分类删除实现
--10.4.2随堂测试
-11.1内容实体定义
-11.2相关接口定义
-11.3服务接口实现
-11.4内容添加、编辑模板实现
-11.5内容添加、编辑控制器实现
-11.6内容检索页面实现
-11.7内容分类树实现
-12.1修改UEditor相关问题
-12.2整合UEditor到内容编辑界面
-12.3UEditor图片对话框应用
-12.4文件上传问题处理
-13.1网站配置相关类实现
-13.2网站配置界面模板实现
-13.3网站配置调试
-14.1网站首页布局实现
-14.2菜单Vue组件实现
--14.2.2随堂测试
-14.3幻灯片Vue组件实现
-14.4滚动Vue组件实现
--14.4.2随堂测试
-14.5滚动接口实现
-14.6滚动接口调试
-14.7幻灯片接口实现
-15.1首页区域实现
-15.2首页内容脚本实现
-15.3首页完善
-15.4Vue组件放入单文件
-15.5详细页面实现
-16.1网站测试介绍
-16.2功能测试
-16.3打包发布
-16.4部署运行
--16.4.2随堂测试