//这个是一个java的ftp工具类, //重点有两个,第一个就是新的名字一定要保证是字符串,后缀名合法, //第二个,就是参数尽量不要使用InputStream,直接使用Mulitpartfile,我的大概就是这两个问题,导致上传的图片大小一直为0 package com.taotao.utils; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.SocketException; import java.util.StringTokenizer; import org.apache.commons.net.ftp.FTPClient; import org.springframework.web.multipart.MultipartFile; public class FTPUtils { public static boolean uploadFile(String host, Integer port, String username , String password, String basePath, String filename, MultipartFile uploadFile ) throws SocketException, IOException { //这个工具类,千万不要使用inputSream作为参数,而要使用文件作为参数,否则会出现上传之后的图片大小为0 //创建ftpClient FTPClient ftpClient = new FTPClient(); System.out.println(ftpClient); ftpClient.setDataTimeout(120); //创建ftp链接 ftpClient.connect(host, port); //登录ftp服务器,使用用户名和密码 ftpClient.login(username, password); //设置buffer ftpClient.setBufferSize(1024); //2)修改上传文件的格式,二进制格式 ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); //設置為被動模式 ftpClient.enterLocalPassiveMode(); //设置上传路径 ftpClient.changeWorkingDirectory(basePath); //第一个参数,服务器文档名字,第二个名字上传文档的inputStream try{ ftpClient.storeFile(filename, uploadFile.getInputStream()); }catch (Exception e){ e.printStackTrace(); }finally { //关闭链接 ftpClient.logout(); return true; } } }
使用java的ftpClient,上传图片到centos,图片大小为0
最新推荐文章于 2024-08-09 09:30:00 发布