遇到的可以连接成功但是拒绝登录的问题

前提说一下,我自己在自己的服务器上配置了nginx的反向代理,所以请求的时候才会直接写的是我的ip地址,要配置nginx的话,可以看我的nginx的笔记

当代码感觉没有问题的时候,但还是无法上传,首先问自己是不是被拒绝登陆了(还真是)

这个问题是当你使用特定的用户的时候才会被拒绝请求

可以在ftpusers & user_list 中把你用到的用户给注释掉(不建议这么干,不能保证安全性)

1.首先检查系统是否开启了vsftp服务,如果没有开启,先开启该服务。

2.查看配置

vsftpd的配置,配置文件中限定了vsftpd用户连接控制配置。
vsftpd.ftpusers:位于/etc/vsftpd目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。
vsftpd.user_list:位于/etc/vsftpd目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。
vsftpd.conf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。 3.配置修改完成后,执行service vsftpd restart重启vsftpd服务。

下面是正式的代码

前台代码

用到的富文本编辑器是summernote前端代码如下

用到的云服务器是阿里云的Centos 7

window.onload = function () {
var summernote = $('.summernote').summernote({
lang: 'zh-CN',
height: 300,
minHeight: 300,
placeholder: '请输入通知的内容',
callbacks: { // 回调函数
// 上传图片时使用的回调函数
onImageUpload: function (files, editor, $editable) {
console.log(files)
sendFile(files[0], editor, $editable);
}
}, }); function sendFile(files, editor, welEditable) {
data = new FormData();
data.append("file", files);
$.ajax({
data: data,
type: "POST",
url: '/image/notice_add',
//请求路径
cache: false,
contentType: false,
processData: false,
dataType: "json",
success: function (data) {
alert(data.message)
// data.message
let url = 'http://xxx.xxx.xxx.xxx/';
//上面是服务器的地址
$('.summernote').summernote('insertImage',url+data.message);
//xxx的地方是图片url的前缀 key为上传后图片的名字
},error:
function (url) {
alert(JSON.stringify(url.message))
}
});
}

后台代码(springboot)

首先是用到的工具类FtpFileUtil

public class FtpFileUtil {

    //ftp服务器ip地址
private static final String FTP_ADDRESS = "39.96.11.225";
//端口号
private static final int FTP_PORT = 21;
//用户名 这里用到的是root 可以切合上面遇到的问题,实际开发中需要单独创建一个用户
private static final String FTP_USERNAME = "root";
//密码
private static final String FTP_PASSWORD = "XXXXXXXXXX";
//图片路径
private static final String FTP_BASEPATH = "/soft/code/images"; public static boolean uploadFile(String originFileName, InputStream input){
boolean success = false;
FTPClient ftp = new FTPClient();
ftp.setControlEncoding("GBK");
try {
int reply;
ftp.connect(FTP_ADDRESS, FTP_PORT);// 连接FTP服务器 ftp.login(FTP_USERNAME, FTP_PASSWORD);// 登录 reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect(); return success;
}
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
ftp.makeDirectory(FTP_BASEPATH );
ftp.changeWorkingDirectory(FTP_BASEPATH );
ftp.storeFile(originFileName,input); input.close();
ftp.logout();
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
return success;
}
}

上传比较大的图片的时候需要在springboot下配置ImageResolverConfig

@Configuration
public class ImageResolverConfig {
@Bean
public MultipartResolver multipartResolver() {
CommonsMultipartResolver resolver=new CommonsMultipartResolver();
// resolver.setDefaultEncoding("utf-8");
resolver.setMaxInMemorySize(1048576);
resolver.setMaxUploadSize(20971520);
return resolver;
}
}
@RestController
@RequestMapping("/image/")
public class ImageUploadController { @ResponseBody
@RequestMapping(value = "notice_add", headers = ("content-type=multipart/*"), method = RequestMethod.POST)
public ResponseResult MyselfImageUpload(@RequestParam("file") CommonsMultipartFile file, HttpServletRequest request){
try {
String path = ImageUploadPathConstant.UPLOAD_PATH;
String fileName = UUID.randomUUID().toString().replace("-", "") + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
// File destFile = new File(path + "/" + fileName);
// FileUtils.copyInputStreamToFile(file.getInputStream(), destFile);
//上面代码是拷贝到本地的,但是因为感觉并不人性化,所以采取了上传到图片服务器的思路
InputStream inputStream=file.getInputStream(); // String url = destFile.getAbsolutePath(); String url = null;
Boolean flag= FtpFileUtil.uploadFile(fileName,inputStream);
if(flag){
url = fileName;
}
//ResponseResult 是一个进行结果封装的类 return ResponseResult.success(url);
}catch (Exception e){
return null;
} } }

ResponseResult //这个类可以不进行使用,但是为了系统的其他功能的使用,尽量加上。用于结果的封装

public class ResponseResult {

    //状态码
private int status; //消息
private String message; //返回数据
private Object data; public ResponseResult(int status, String message, Object data) {
this.status = status;
this.message = message;
this.data = data;
} //成功
public static ResponseResult success(Object data) {
return new ResponseResult(ResponseStatusConstant.RESPONSE_STATUS_SUCCESS, "success", data);
} public static ResponseResult success(String message) {
return new ResponseResult(ResponseStatusConstant.RESPONSE_STATUS_SUCCESS, message, null);
} public static ResponseResult success() {
return new ResponseResult(ResponseStatusConstant.RESPONSE_STATUS_SUCCESS, "success", null);
} //失败
public static ResponseResult fail() {
return new ResponseResult(ResponseStatusConstant.RESPONSE_STATUS_FAIL, "fail", null);
} public static ResponseResult fail(Object data) {
return new ResponseResult(ResponseStatusConstant.RESPONSE_STATUS_FAIL, "fail", data);
} public static ResponseResult fail(String message) {
return new ResponseResult(ResponseStatusConstant.RESPONSE_STATUS_FAIL, message, null);
} public int getStatus() {
return status;
} public void setStatus(int status) {
this.status = status;
} public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
} public Object getData() {
return data;
} public void setData(Object data) {
this.data = data;
} }

summernote 上传图片到图片服务器的解决方案(springboot 成功)的更多相关文章

  1. kindeditor修改图片上传路径-使用webapi上传图片到图片服务器

    kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 在这里我着重介绍一些使用kindeditor修改图片上传路径并通过webapi上传图片到图片服务器的方案. 因为我使用的 ...

  2. kindeditor扩展粘贴图片功能&修改图片上传路径并通过webapi上传图片到图片服务器

    前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功 ...

  3. kindeditor扩展粘贴截图功能&修改图片上传路径并通过webapi上传图片到图片服务器

    前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功 ...

  4. 使用Ueditor上传图片到图片服务器(一)

    网站的文章,通过运营平台来发布文章(图文消息),上传图片等.百度Ueditor比较成熟就采用了该技术,另外上传的图片是网站系统以及运营平台系统共享的,所以考虑搭建独立的图片服务器,以后也可以提供给公司 ...

  5. 使用Ueditor上传图片到图片服务器(二)

    上一篇主要写了前端部分如何配置ueditor的上传路径,已经jsp页面中如何使用ueditor的编辑器功能以及如何配置单独的图片上传功能. 这一篇,我分两部分:第一部分是搭建图片服务器以及配置ftp上 ...

  6. nginx 一二事(1) - 简单图片服务器解决方案

    最近经常有人问图片上传怎么做,有哪些方案做比较好,也看到过有关于上传图片的做法,但是都不是最好的 今天再这里简单讲一下上传图片以及图片服务器的大致理念 如果是个人项目或者企业小项目,仅仅只有十来号人使 ...

  7. 转:Linux下使用Nginx搭建简单图片服务器

    最近经常有人问图片上传怎么做,有哪些方案做比较好,也看到过有关于上传图片的做法,但是都不是最好的,今天再这里简单讲一下Nginx实现上传图片以及图片服务器的大致理念. 如果是个人项目或者企业小项目,仅 ...

  8. ImageMagick图片服务器

    1.前置准备工具如下: nodejs express(nodejs mvc框架) body-parser(express middleware) gm(nodejs中用来处理图片的) uuid(nod ...

  9. 淘淘商城学习笔记 之 上传图片到远程服务器,图片的回显出现的bug

    最近在学习淘淘商城中用到的技术,感觉受益良多,遇到一个比较奇怪的bug调了好久,遂心乐之分享于诸君 bug情况是这样的:在商城的后台上传图片之后图片回显不出来,右键查看链接,发现链接被加了localh ...

随机推荐

  1. SpringBoot之Configuration

      在SpringBoot中可以通过@Configuration对某个类注解将该类申明为配置类,以此在代替先前spring版本中配置xml中的功能,并且增加了可读性与维护性.并且在注解类中的类方法中可 ...

  2. 如何处理pom文件中没有找到HUB检查到高危漏洞的依赖包

    最近使用HUB工具检查到maven工程中存在高危险漏洞,虽然定位到具体的引用包了,但是在pom文件中却没有发现该依赖包.此时,我们就需要用到这条命令mvn dependency:tree,该命令会将m ...

  3. [转]shallow heap & retained heap

    所有包含Heap Profling功能的工具(MAT, Yourkit, JProfiler, TPTP等)都会使用到两个名词,一个是Shallow Size,另一个是 Retained Size.  ...

  4. HttpRequestException encountered解决方法

    每次pull代码的时候,总是要输入账号,密码,百度了一下HttpRequestException encountered错误 发现是Github 禁用了TLS v1.0 and v1.1,必须更新Wi ...

  5. Docker最全教程——从理论到实战(十一)

    前言 容器教程的路还很长,笔者尽量根据实践来不断地完善.由于在编写的过程中还会有完善和补充,后续可能会以番外来补充. 接下来会分享TeamCity.树莓派等内容,节奏可能会有点跳脱. 另外,长沙.NE ...

  6. Token:服务端身份验证的流行方案

    01- 身份认证 服务端提供资源给客户端,但是某些资源是有条件的.所以服务端要能够识别请求者的身份,然后再判断所请求的资源是否可以给请求者. token是一种身份验证的机制,初始时用户提交账号数据给服 ...

  7. mybatis(五):源码分析 - sqlsession执行流程

  8. 采用PHP实现”服务器推”技术的聊天室

      传统的B/S结构的应用程序,都是采用”客户端拉”结束来实现客户端和服务器端的数据交换. 本文将通过结合Ticks(可以参看我的另外一篇文章:关于PHP你可能不知道的-PHP的事件驱动化设计),来实 ...

  9. 2020算法设计竞赛 I、匹配星星

    链接:https://ac.nowcoder.com/acm/contest/3005/I来源:牛客网 天上有n颗星星,每颗星星有二维坐标(xi,yi)(x_i, y_i)(xi​,yi​),还有一个 ...

  10. C++-static作用(转)

    C++中static的作用 C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作用 ...