java商城后台图片上传功能_淘淘商城图片上传功能的实现

前提:

参考:集群环境下图片上传的功能分析、vmware的安装,linux的安装、nginx和ftp服务在linux的安装,ftp的客户端的使用。

图片上传是图片存储到ftp服务器上面,所以这里不需要操作mapper层。

这里用了几个工具类

ftp图片上传的工具类,图片名字的一种新的生成方式,json与java类的转换工具。

这里图片上传采用的是富文本编辑器的一个图片上传插件,在jsp页面实现的。

f7b1cc37f180335ec6915a70a2264787.png

0fa57414b260e090a2cf4f8218bbc315.png

4d48fb7f9de25b98f2b531fc5f9bc726.png

根据这几个jsp页面我们可以看到图片上传功能的url和传入的参数。

分析:

(1)图片是上传到ftp服务器,不是在数据库。所以我们搭建好服务的环境。

(2)是否有传入的参数和返回值

5a144f36c63b48bbab6949e1e55fb30e.png

在这里我们看到参数即uploadFile,url为/pic/upload

这里注意使用的上传到服务器的一个MultiPartFile对象

37918096dce25d18f789728d0b053198.png

springMVC实现图片的上传,需要依赖

导入common-fileupload的依赖

commons-fileupload

commons-fileupload

这里需要在springMVC中配置这个文件上传的bean

利用富文本编辑器上传图片返回的结果是也是json的格式,详细可以参考kindEditor的上传功能实现文档:

返回格式(JSON):

64a416b6f6435049de291a593eefd96f.png

这里有返回成功时的情况和失败时的情况。我们可以采用两种方式来保存返回的json数据,一种是map集合的键值对形式,一种是pojo对象。下面看下两种方式:

Map的键值对形式如下:

5251d1b148312ba70c6ecad1d27b81ad.png

pojo对象格式:

public class PictureResult {

/**

* 上传图片返回值,成功:0 失败:1

*/

private Integer error;

/**

* 回显图片使用的url

*/

private String url;

/**

* 错误时的错误消息

*/

}

(3)代码的编写实现:

controller层:

这是采用map的形式存储返回值,因为图片上传这个插件有些缺陷会在有的浏览器显示不出来,所以需要将java对象转为json的数据形式。

ba0112b5a8538b2f5d27f0ff27e127aa.png

service层:

1c79b5fcb237a1694d4c89bbea869650.png

这里的步骤是:

1、生成图片的名称,这里采用的是上面讲的利用时间的分秒来实现的命名,具体见下一章

2、利用FTPUtil工具实现图片的上传:

在这里需要获取ftp服务器的ip,用户名,密码,存储的路径。

用到了一个spring的新技术:

首先将这些ip端口等等写在一个文件中,然后利用spring来读取,因为在项目中不能将这些东西写死。

449cea97b747d6066b65848de68a6a93.png

读取方式:

0ef0e8c6ea0e615836b3cde54bc62bca.png

另外还有一个新技术,就是joda-time的日期类型转换的插件,在依赖的jar包那里添加依赖:

4ae06ea8cbb17d787481d035841b18fa.png

利用这个插件,可以直接生成所需要的格式:

547d970e2913b36b455d2610e79ae86e.png

这里是采用时间的形式来生成作为图片的文件夹

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值