在手机应用或者网站开发中,很多情况我们需要将图片或文件上传ftp服务器,应用时只需返回一个路径。
第一、如果没有现有的ftp服务器,可以在本机自行搭建一个测试服务器。
第二、如何连接服务器
创建一个上传服务器类ftpUpload,首先定义ftp服务器的ip,用户的id,密码,和端口,然后创建实例,并将参数附上值,
public FtpUpload() throws IOException {
this.ip=this.ip;
this.userId=this.userId;
this.pwd=this.pwd;
this.port=this.port; }
第三、上传文件:通过ip和端口连接ftp服务器,验证用户名和密码,判断文件夹是否已经存在,指定工作目录,
public boolean upMyFile(String fileName,InputStream ins){
FTPClient ftpClient = new FTPClient();
ftpClient.setControlEncoding("GBK");
try {
ftpClient.connect(ip, port);
if (!ftpClient.login(userId, pwd)) {
System.out.println("系统登录不成功!");
}
DateFormat df = new SimpleDateFormat("yyyyMMdd");
String strDate=df.format(new Date());
if (ftpClient.cwd(strDate) == 250) { // 若返回值为250,说明文件夹已经存在
ftpClient.cwd(strDate); // 指定工作目录
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
if (ftpClient.storeFile(fileName, ins)) {
file=strDate+"/"+fileName;
}else{
return false;
}
ftpClient.logout();
} else {
ftpClient.makeDirectory(strDate);
ftpClient.cwd(strDate);
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
if (ftpClient.storeFile(fileName, ins)) {
file=strDate+"/"+fileName;
}else{
return false;
}
ftpClient.logout();
}
} catch (SocketException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
}
上传类已经写好,然后可以写一个测试程序处理图片并通过上面的类上传
当获得一个MultipartFile型的文件file时,将文件转换成byte数组,如果想把获得的图片大小变成固定的,只需给定相应的宽高
byte[] bytes = null;
int height = 600;
int width = 800
bytes = file.getBytes();
InputStream buffin = new ByteArrayInputStream(bytes);
BufferedImage img = ImageIO.read(buffin);
然后new一个上面的ftpUpload上传类,将图片转换成流的形式
FtpUpload ftpUpload=new FtpUpload();
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_3BYTE_BGR);
image.getGraphics().drawImage(img,0,0, width, height, null);
java.io.ByteArrayOutputStream output = new java.io.ByteArrayOutputStream();
ImageIO.write(image, "jpg", output);
byte[] buff = output.toByteArray();
InputStream in = new ByteArrayInputStream(buff);
重新命名图片名称,可以以当前上传时间(yyyyMMddHHmmss)为名
DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
String sysTime=df.format(new Date());
ftpUpload.upMyFile(sysTime+".jpg",in);
分享到:
相关推荐
在Java分布式项目中,涉及到客户端上传图片到FTP服务器并由Nginx提供HTTP服务进行图片下载,这是一个典型的文件传输和Web服务集成的场景。这里主要涉及三个关键知识点:Java FTP客户端编程、Nginx服务器配置以及Java...
在这个场景下,Java多线程技术可以用于优化FTP上传的效率,例如通过并发上传多个文件来加速整个过程。 首先,我们来了解一下Java中的线程。在Java中,Thread类是所有线程的基类,通过创建Thread对象并调用其start()...
接下来,我们需要设置FTP模式,通常使用二进制模式来上传数据,因为二进制模式可以处理所有类型的数据,包括图片、音频、视频等非文本文件: ```java ftpClient.setFileType(FTP.BINARY_FILE_TYPE); ``` 然后,...
本篇文章将详细讲解如何使用Java编写一个FTP工具类,实现连接FTP服务器、上传文件、删除文件、下载文件以及检索文件的功能。 首先,我们需要引入Apache Commons Net库,该库提供了丰富的FTP客户端API。在`pom.xml`...
通过理解以上知识点,并参考提供的源代码和实例,开发者可以构建自己的Java FTP上传程序,满足不同场景下的文件上传需求。对于图片上传,可以特别优化文件类型检查和上传流程,确保图片文件的正确传输和保存。
本文将详细讲解如何使用Java实现文件上传到FTP服务器以及从FTP服务器下载到本地的功能。 首先,为了实现FTP功能,我们需要引入相关的库。尽管提供的压缩包中没有包含jar文件,但通常我们会使用Apache Commons Net库...
在Java编程中,多线程FTP(File Transfer Protocol)上传和下载是常见的任务,尤其在处理大量文件或者需要并发操作时。在这个场景下,我们通常会利用Java的Apache Commons Net库,它为FTP功能提供了丰富的API。正如...
3. **处理客户端连接**:对于每次连接,服务器创建一个新的`ftpServer`实例,并启动线程处理。 4. **命令解析与响应**: - 用户名与密码验证:接收并验证用户输入的用户名和密码。 - 目录变更:根据`CWD`和`CDUP`...
本项目聚焦于使用Java和OpenCV库调用摄像头进行拍照,并将拍摄的照片保存到本地,同时支持通过FTP服务上传至远程服务器。下面将详细阐述这个过程中涉及的关键知识点。 1. **Java编程语言**: Java是一种广泛使用的...
图片上传过程中,UEditor会进行图片格式检查、大小限制以及上传进度显示等处理,确保上传过程的顺利进行。 **本地图片上传** 对于本地图片上传,UEditor会在用户选择图片后,通过HTML5的File API将图片数据转换为...
Java实现图片上传至服务器功能(FTP协议) Java实现图片上传至服务器功能是指通过Java语言...通过本文的学习,可以掌握Java图片上传技术和FTP协议的使用。同时,本文的代码实现了FTP协议的功能,可以作为参考代码。
5. **FTP上传图片**:在FTP上传图片时,需要确保图片文件的格式(如.jpg、.png、.gif等)被服务器支持,并且拥有相应的写入权限。 6. **FTP会话管理**:FTP客户端可以管理多个FTP会话,方便在不同服务器间切换,...
4. **本地文件读取**:使用`java.io`库中的`FileInputStream`打开并读取待上传的图片文件。 5. **上传文件到FTP**:调用`FTPClient`的`storeFile()`方法,将本地文件上传到FTP服务器。参数包括目标文件名和`...
在服务器端,通常需要有对应的接口接收并处理这些上传的文件。这个DEMO可能不包括后端部分,但理解如何处理这些文件的后端逻辑也是很重要的,比如存储文件、处理文件名冲突、错误处理等。 此外,考虑到用户体验,...
后台控制器可以使用 @RequestMapping 注解来映射文件上传的接口,并使用 MultipartFile 对象来处理文件上传。 代码实现: 以下是使用 Spring Boot 实现 FTP 方式上传文件到远程服务器的代码实现: HTML 代码: ...
标题提到的"上传文件时截取首页图片+上传文件到ftp文件服务器"是一个实用的功能,它结合了文件处理和网络传输两个方面。以下是对这个功能的详细解读: 首先,我们要了解的是“截取首页图片”。在上传文档时,为了...
在IT行业中,上传图片并通过FTP(File Transfer Protocol)保持下来是一项常见的任务,尤其在网站管理、内容发布或者数据传输等领域。FTP是一种标准网络协议,用于在客户端和服务器之间进行文件传输。下面我们将深入...
在Java编程中,进行FTP(File Transfer Protocol)服务器的文件上传和下载是常见的任务,尤其在处理文件存储、数据交换等场景。为了实现这个功能,我们需要依赖特定的库,也就是所谓的jar包。根据标题和描述,这里...
本文将详细介绍如何通过Java代码实现对FTP服务器上文件的删除操作,并对给出的代码片段进行分析与补充。 #### 二、基础知识 1. **FTP协议简介**: - FTP是一种标准网络协议,用于在计算机网络间进行文件传输。 -...
5. **FTP上传配置**:要支持上传FTP服务器,你需要一个FTP客户端库,如Apache Commons Net。配置FTP服务器的连接参数(如主机名、用户名、密码和端口),然后使用`FTPClient`类建立连接,登录,设置传输模式,上传...