起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3837|回复: 6

[分享] 解决模式一打包baas后端跟UI路径对应云部署图片不显示

[复制链接]

23

主题

111

帖子

1255

积分

金牌会员

Rank: 6Rank: 6

积分
1255
QQ
发表于 2017-1-8 16:38:28 | 显示全部楼层 |阅读模式
本帖最后由 hisoon 于 2017-5-23 11:17 编辑

错误原因:在模式一打包后,baas和前端UI路径改变,前端后端根目录不再一致,UI访问不到baas,所以用静态写死路径的办法在打包之后就会找不到图片路径
参考官方attachmentSimple1组件对应的后端服务SimpleFileStore.java
其原理是:
先判断method的类型post/get,
如果为post(上传)则将文件处理后放到后端BAAS下
post是上传,这里我门自己写的处理方法
如果method为get(URL里面问号?拼接的字符串),则执行doget方法获取图片
doget又会判断operateType所带的类型,如果是copy则copy,如果为其他任意字符则执行getFile方法
  1.                 var url2 = this.actionUrl + '?PicName=' + "img" + '&operateType='+"*";// + operateType;
  2.                 var url=require.toUrl(url2);
复制代码

所以我们的思路就是
前端压缩/裁切图片,直接调用后端的“图片存储”类
  1. if(request.getMethod().equals("GET")){// 如果发送的get请求则加载图片
  2.                         doGet(request, response);//执行doget也就是查询
  3.                         
  4.                 }
  5.                 else{直接上传存储}
复制代码


前端通过get方法,字符串拼接,(此字符串里有图片图片名称、operateType等信息),来调用后端的doget方法用于显示图片给前端
  1.                 var url2 = this.actionUrl + '?PicName=' + "img" + '&operateType='+"*";// + operateType;
  2.                 var url=require.toUrl(url2);
复制代码
附上源码
coder.rar (204.11 KB, 下载次数: 135)

15

主题

47

帖子

241

积分

中级会员

Rank: 3Rank: 3

积分
241
QQ
发表于 2017-7-6 19:54:27 | 显示全部楼层
你好,用你的源码本地图片显示不出来,帮忙看下什么原因
报错信息: QQ截图20170706194805.png 文件是存在的,不知道为什么显示不出来
QQ截图20170706195013.jpg
回复 支持 反对

使用道具 举报

15

主题

47

帖子

241

积分

中级会员

Rank: 3Rank: 3

积分
241
QQ
发表于 2017-7-6 20:05:35 | 显示全部楼层
你好,看一下下面
回复 支持 反对

使用道具 举报

23

主题

111

帖子

1255

积分

金牌会员

Rank: 6Rank: 6

积分
1255
QQ
 楼主| 发表于 2017-7-7 10:33:40 | 显示全部楼层

你的tom-cat配置有问题.
回复 支持 反对

使用道具 举报

23

主题

111

帖子

1255

积分

金牌会员

Rank: 6Rank: 6

积分
1255
QQ
 楼主| 发表于 2017-7-7 10:35:02 | 显示全部楼层
l_wang2000 发表于 2017-7-6 19:54
你好,用你的源码本地图片显示不出来,帮忙看下什么原因
报错信息:文件是存在的,不知道为什么显示不出来
...

这个问题很容易解决,你看一下你的图片上传地址字符串是怎么拼接的+你的图片引用URL是怎么拼接的
很容易找出错误
回复 支持 反对

使用道具 举报

15

主题

47

帖子

241

积分

中级会员

Rank: 3Rank: 3

积分
241
QQ
发表于 2017-7-7 10:54:29 来自手机 | 显示全部楼层
hisoon 发表于 2017-7-7 10:35
这个问题很容易解决,你看一下你的图片上传地址字符串是怎么拼接的+你的图片引用URL是怎么拼接的
很容易找 ...

是文件名传参带了后缀,大哥,按你说的,云部署后图片能显示了。但过段时间重新打开app图片丢失了,必须重新上传后才能显示,你有遇到过么?云服务器会定时删除用户上传的文件?还有就是过段时间重新打开app会出现方法404报错,重新打开就好,是不是云部署时数据文档没选的原因?
回复 支持 反对

使用道具 举报

23

主题

111

帖子

1255

积分

金牌会员

Rank: 6Rank: 6

积分
1255
QQ
 楼主| 发表于 2017-7-7 13:09:19 | 显示全部楼层
l_wang2000 发表于 2017-7-7 10:54
是文件名传参带了后缀,大哥,按你说的,云部署后图片能显示了。但过段时间重新打开app图片丢失了,必须 ...

我没用过wex那个云,不知道啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-20 04:48 , Processed in 0.099530 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表