淘淘商城-之上传图片

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiaoguaihu12/article/details/69665794

首先:

1.需要将nginx图片服务器搭建好,按照demo做出现问题的,可以在 /usr/local/nginx/conf/nginx.conf  中,添加一个server,

我试了一下,不添加时,上传失败,添加后,就可以了,

我的文件存放到了/home/ftpuser/image下,所以我这样配置的   设置nginx.conf命令是: vim /usr/local/nginx/conf/nginx.conf

nginx图片服务器 nginx.conf配置: 其他按demo配置


ftp,我是将能整的都整了,

被动模式,端口从30000-65535,相应的在iptable中也需要配置开发这个范围的端口,不过后来为了不让iptable添乱,我将iptable关闭了

大体也是按照demo走的.

这是Test测试:

                //创建FtpClient对象
		FTPClient ftpClient = new FTPClient();
		//创建ftp连接,默认21端口
		ftpClient.connect("192.168.31.132", 21);
		
		//登录ftp服务器,使用用户名密码
		//ftpClient.login("ftpuser", "xiaoguaihu12");
		//设置上传路径
		ftpClient.changeWorkingDirectory("/home/ftpuser/image");
		//上传文件 每次数据连接之前,ftpClient告诉ftpServer开通一个端口来传输数据
		ftpClient.enterLocalPassiveMode();  //注意: 需要在demo的基础上添加这一行,原demo是没有的,加上加好用
		//读取本地文件
		FileInputStream inputstream = new FileInputStream(new File("F:\\image\\Tue Jun 14 09-54-38.bmp"));
		//修改上传文件格式,不修改导致图片花,使用字节流上传
		ftpClient.setFileType(FTP.BINARY_FILE_TYPE);//采用二进制传输
		//参数1.remote:上传文件在服务端存储的名字,参数2.local:input流
		ftpClient.storeFile("hello123.jpg",inputstream );
		//关闭连接
		ftpClient.logout();
可以顺利上传

-----------------------------

将上传逻辑加入系统中:这里与demo有一点小区别,

我在他的ftpUtils中也添加了测试类中额外添加的代码:



properties:


其他地方基本差不多,只是自己定义的名字不同而已.

配置好nginx和ftp后,可以在win端,使用浏览器先访问以下,看能不能访问到,如果不能,那说明配置的不行,有时,可能只是路径不对,但你不知道,改来改去,配置全改乱了





忽略我,打印出的内容,2017前多了个 /, 加上去掉都没事

为了避免出现上传时,没有开启30000后的端口,我在service实现类逻辑中,也添加了:

FTPClient ftpClient = new FTPClient();
ftpClient.enterLocalPassiveMode();

是自己new的,不知道起没起作用,反正添加上没影响正常运行,就不再测试了.

上传图片时,访问路径:


上传图片的注意点: vsftpd原本是不支持使用root用户上传的,我是用root用户做的,需要配置vaftpd文件,将 记得是将root前面的# 警号去掉,配置两个地方吧


上传失败有几种情况: 0KB,我遇到了, service实现类逻辑中8个参数Debug时返回false的情况也遇到了.基本上传失败的问题都遇到了,忘记添加spring上传解析器,

返回前没有转换成json等,

0KB时,加上那句代码应该就可以,因为没有可以去纠结哪个问题,现在回想起来应该那种办法可以行得通

返回false,我的是将接收的参数从新定义,以前是file,改回了,uploadFile,然后将我定义的8个参数,也基本都是按照他提示的8个参数的名字定义的,都给改掉...然后在Debug时,

分析一下你的路径对不对

其他问题demo按demo走


如果嫌linux版本配置比较麻烦,还可以在win下配置nginx和ftp,相对简单很多:http://blog.csdn.net/u012809062/article/details/52725526,参考他的帖子

展开阅读全文

没有更多推荐了,返回首页