java ftp上传图片_前台多图片上传,Java后台处理后上传到ftp上并回显-java文件传输...

本文介绍如何在Java后端处理多图片上传,使用MultipartFile对象遍历文件并上传到FTP服务器,同时检查文件格式。上传成功后,删除临时文件。
摘要由CSDN通过智能技术生成

本文是《页面ajax上传图片后,后台上传图片服务器后回显》发出后,很多网友说,不能多图片上传的。

所以,本篇介绍多图片上传。

解决思路:

先获取MultipartFile multipartFile 对象。在进行循环遍历得到单个对象。

首先,我们来回顾下,单图片上传的后台代码:

请求参数中:

dc8c34b7ee77f496deaa0f39aed2b94b.png

需要@RequestParam("file") MultipartFile multipartFile且是必填的。

通过multipartFile.transferTo(file)将图片复制。如下图

ca0eeb6f8641a8501856455a1b6dfc69.png

这是单图的主要思路。

多图上传开始:

1:创建一个通用的多部分解析器

a4986d31034a4192bab6f769d7e0de52.png

2:循环得到单个后放到list中:

1009ff314c857379f110a14a8fac1ee0.png

得到list后,在按照单个图片出来思路进行处理,就可以。

示例代码:

@RequestMapping(value = "/ckeditorUpload")

public String ckeditorUpload(HttpServletResponse response

,HttpServletRequest request

) throws Exception {

InputStream is = null;

OutputStream os = null;

PrintWriter out = null;

String path = request.getSession().getServletContext().getRealPath("/uploadDoc");

File deleteBigImgFile = new File(path);

try {

if(null!=upload){

}

// 图片名称

String fileName = null;

// 创建一个通用的多部分解析器

CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession()

.getServletContext());

// MultipartFile mfile = null;

List mfileList = new ArrayList();

if (multipartResolver.isMultipart(request)) {

// 转换成多部分request

MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;

// 取得request中的所有文件名

Iterator iter = multiRequest.getFileNames();

while (iter.hasNext()) {

MultipartFilemfile = multiRequest.getFile(iter.next());

if (mfile != null) {

// 取得当前上传文件的文件名称

String myFileName = mfile.getOriginalFilename();

// 如果名称不为“”,说明该文件存在,否则说明该文件不存在

if (myFileName.trim() != "") {

// 获得图片的原始名称

String originalFilename = mfile.getOriginalFilename();

fileName=originalFilename;

}

mfileList.add(mfile);

}

}

}

response.setCharacterEncoding("UTF-8");

out = response.getWriter();

String suffix = fileName.substring(fileName.lastIndexOf("."));

if(!suffix.toLowerCase().equals(".png") && !suffix.toLowerCase().equals(".jpg") ){

out.print("*文件格式不正确(必须为.jpg/.gif/.bmp/.png文件)");

return null;

}

File file = new File(path);

// 如果指定的路径没有就创建

if (!file.exists()) {

file.mkdirs();

}

try {

if(null != mfileList && !mfileList.isEmpty()){

MultipartFile mfileList = mfileList.get(0);

fileName =System.currentTimeMillis()+"_"+UUID.randomUUID().toString()+suffix;

File uploadFile = new File(file +File.separator+fileName);

deleteBigImgFile = new File(file +File.separator+fileName);

mfile.transferTo(uploadFile);

} catch (Exception e) {

System.out.println("上传图片时候异常了:"+e);

e.printStackTrace();

}

}

FileInputStream in1 = null;

String fileName1 = null;

try {

in1 = new FileInputStream(new File(path+"/"+fileName));

fileName1 = System.currentTimeMillis()+"_"+UUID.randomUUID().toString()+suffix;

//防止FTP上传到服务器乱码

String uploadFileName = fileName;

String realName1 = new String(uploadFileName.getBytes("utf-8"), "ISO-8859-1");

fileName1=realName1;

boolean isOk = FTPUpLoad.uploadFile(ftpServer, ftpPort, ftpUser, ftpPassword, fileFtpStortPath, realName1, in1);

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}finally{

try {

if(null != deleteBigImgFile && deleteBigImgFile.exists()){

deleteBigImgFile.delete();

}

in1.close();

} catch (IOException e) {

e.printStackTrace();

}

}

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

if(null!=is){

is.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

return null;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值