社区
Web 开发
帖子详情
求助:关于淘淘商城上传图片一直读条但图片服务器中已经显示
红桃三爱bug
2018-11-25 04:17:21
service层
controller
运行结果
ftp服务器中也显示
但是网页中一直在读条,不显示图片,还报错误。求助各位大佬解决,搞了一个周了,还是没解决。
...全文
133
3
打赏
收藏
求助:关于淘淘商城上传图片一直读条但图片服务器中已经显示
service层 controller 运行结果 ftp服务器中也显示 但是网页中一直在读条,不显示图片,还报错误。求助各位大佬解决,搞了一个周了,还是没解决。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
红桃三爱bug
2018-12-14
打赏
举报
回复
问题找到了,返回格式中map成功的key应该是url,不应该是message。
Insist_on_progress
2018-12-07
打赏
举报
回复
还不行就重启Nginx和ftp
Insist_on_progress
2018-12-07
打赏
举报
回复
话不多说直接上代码
1.ftp工具类
public class FtpUtil {
/**
* Description: 向FTP服务器上传文件
*
* @param host FTP服务器hostname
* @param port FTP服务器端口
* @param username FTP登录账号
* @param password FTP登录密码
* @param basePath FTP服务器基础目录
* @param filePath FTP服务器文件存放路径。例如分日期存放:/2015/01/01。文件的路径为basePath+filePath
* @param filename 上传到FTP服务器上的文件名
* @param input 输入流
* @return 成功返回true,否则返回false
*/
public static boolean uploadFile(String host, int port, String username, String password, String basePath,
String filePath, String filename, InputStream input) {
boolean result = false;
FTPClient ftp = new FTPClient();
ftp.enterLocalPassiveMode();
try {
int reply;
ftp.connect(host, port);// 连接FTP服务器
// 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器
ftp.login(username, password);// 登录
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return result;
}
//切换到上传目录
if (!ftp.changeWorkingDirectory(basePath + filePath)) {
//如果目录不存在创建目录
String[] dirs = filePath.split("/");
String tempPath = basePath;
for (String dir : dirs) {
if (null == dir || "".equals(dir)) continue;
tempPath += "/" + dir;
if (!ftp.changeWorkingDirectory(tempPath)) {
if (!ftp.makeDirectory(tempPath)) {
return result;
} else {
ftp.changeWorkingDirectory(tempPath);
}
}
}
}
//设置上传文件的类型为二进制类型
ftp.setFileType(FTP.BINARY_FILE_TYPE);
//上传文件
if (!ftp.storeFile(filename, input)) {
return result;
}
input.close();
ftp.logout();
result = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
return result;
}
/**
* Description: 从FTP服务器下载文件
*
* @param host FTP服务器hostname
* @param port FTP服务器端口
* @param username FTP登录账号
* @param password FTP登录密码
* @param remotePath FTP服务器上的相对路径
* @param fileName 要下载的文件名
* @param localPath 下载后保存到本地的路径
* @return
*/
public static boolean downloadFile(String host, int port, String username, String password, String remotePath,
String fileName, String localPath) {
boolean result = false;
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(host, port);
// 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器
ftp.login(username, password);// 登录
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return result;
}
ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录
FTPFile[] fs = ftp.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(fileName)) {
File localFile = new File(localPath + "/" + ff.getName());
OutputStream is = new FileOutputStream(localFile);
ftp.retrieveFile(ff.getName(), is);
is.close();
}
}
ftp.logout();
result = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
return result;
}
}
2.配置文件(你要先用Nginx代理ftp)
ftpclient.host=ftp服务器ip
ftpclient.port=21
ftpclient.username=用户名
ftpclient.password=密码
ftpclient.basepath=/home/ftp/
ftpclient.filepath=/
3.controller层
@Controller
public class PicController {
@Value("${ftpclient.host}")
private String host;
@Value("${ftpclient.port}")
private String port;
@Value("${ftpclient.username}")
private String username;
@Value("${ftpclient.password}")
private String password;
@Value("${ftpclient.basepath}")
private String basePath;
@Value("${ftpclient.filepath}")
private String filePath;
@PatchMapping("/pic/upload")
@ResponseBody
public Map<String, Object> upload(MultipartFile uploadFile) throws Exception {
String filename = IDUtils.genImageName() + uploadFile.getOriginalFilename().substring(uploadFile.getOriginalFilename().lastIndexOf("."));
boolean b = FtpUtil.uploadFile(host, Integer.valueOf(port), username, password, basePath, filePath, filename, uploadFile.getInputStream());
HashMap<String, Object> map = new HashMap<>();
if (b) {
map.put("error", 0);
map.put("url", "http://" + host + "/" + filename);
} else {
map.put("error", 1);
map.put("message", "文件上传失败");
}
return map;
}
}
解决KindEditor
上传
图片
不
显示
上传按钮问题
在学习
淘淘商城
第三天的时候,批量
上传
图片
到
服务器
,正确的姿势是这样的: 但是添加
图片
那个按钮没有出现,然后百度说是缺少flash ,所以把flash更新了,然而并没有解决问题。 最终解决方案是,打开
淘淘商城
网页,然后用浏览器调试功能,
显示
缺少一个images包 然后去把images包添加进工程,ok解决问题。...
淘淘商城
向FTP里
上传
图片
图片
损坏
淘淘商城
向FTP里
上传
图片
图片
损坏 自己按照视频写的
淘淘商城
,搭建
服务器
,向
服务器
里上传能成功, 能
显示
出来但是
服务器
里面的
图片
图片
显示
是存在的,表示
已经
上传成功,但是文件大小为0,打开后
显示
图片
损坏。 在网上搜了一下午,发现别人的FTPUtil比我多了一个设置为被动模式。 被动模式,添加后即可成功用测试类上传 第一次写这个,算是遇到的小问题,留着以后自己看看。 ...
网上的
淘淘商城
项目
淘淘商城
第一天 课程计划 第一天: 1、电商行业的背景。 2、
淘淘商城
的系统架构 a) 功能介绍 b) 架构讲解 3、工程搭建-后台工程 a) 使用maven搭建工程 b) 使用maven的tomcat插件启动工程 4、Svn的使用。 第二天: 1、服务
中
间件dubbo 2、Ssm框架整合。 3、整合测试 4、商品列表查询功能实现。 第三天: 1、商品类目选择 2、
图片
上传 a)
图片
服务器
...
淘淘商城
淘淘商城
是一个SSM+Maven+Mybatis大型分布式项目,我将在blog更新项目
中
的要点难点和实现效果,另外在github上传程序源码和步骤详解。 功能 分布式系统架构 使用技术 ...
java商城后台
图片
上传功能_
淘淘商城
图片
上传功能的实现
前提:参考:集群环境下
图片
上传的功能分析、vmware的安装,linux的安装、nginx和ftp服务在linux的安装,ftp的客户端的使用。
图片
上传是
图片
存储到ftp
服务器
上面,所以这里不需要操作mapper层。这里用了几个工具类ftp
图片
上传的工具类,
图片
名字的一种新的生成方式,json与java类的转换工具。这里
图片
上传采用的是富文本编辑器的一个
图片
上传插件,在jsp页面实现的。根据这几个...
Web 开发
81,110
社区成员
341,722
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章