import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.UUID;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

public class UploadUtil {

/**
* 上传文件
* @param muiltRequest
* @param path
* @return
* @throws IOException
*/
public static String uploadFile(MultipartHttpServletRequest muiltRequest,
String path) throws IOException {
// 获取遍历文件名
Iterator iter=muiltRequest.getFileNames();
String url=""; //返回的图片路径
while (iter.hasNext()) {
MultipartFile file=muiltRequest.getFile(iter.next().toString());
System.out.println("-->>>"+file);
if(!file.isEmpty()||file!=null) {     //获取原始文件名
String filename = file.getOriginalFilename();

InputStream is = file.getInputStream(); // 获取输入流,MultipartFile中可以直接得到文件的流
int pos = filename.lastIndexOf("."); // 取文件的格式
//唯一标识数字
UUID uuid = UUID.randomUUID();
String filenameurl = path + '\\' + uuid + filename.substring(pos);
try {
// 获取输出流
OutputStream os = new FileOutputStream(filenameurl);
// 创建一个缓冲区
byte[] buffer = new byte[1024];
// 判断输入流中的数据是否已经读完的标识
int len = 0;
// 循环将输入流读入到缓冲区当中,(len=is.read(buffer))>0就表示is里面还有数据
while ((len = is.read(buffer)) > 0) {
// 使用FileOutputStream输出流将缓冲区的数据写入到指定的目录当中
os.write(buffer, 0, len);
}
os.flush();
os.close();
is.close();

} catch (FileNotFoundException e) {
e.printStackTrace();

}
// url = url + uuid + filename.substring(pos)+";";
url = url + filenameurl+";";
}
}
url=url.substring(0, url.length()-1);
return url;
}

}

参考:

http://lijie-insist.iteye.com/blog/2331021

http://www.cnblogs.com/fjsnail/p/3491033.html

java上传文件代码的更多相关文章

  1. Java上传文件FTP服务器代码

    1. 在实际的应用重,通常是通过程序来进行文件的上传. 2. 实现java上传文件到ftp服务器中 新建maven项目 添加依赖 <dependency> <groupId>c ...

  2. java 上传文件到 ftp 服务器

    1.  java 上传文件到 ftp 服务器 package com.taotao.common.utils; import java.io.File; import java.io.FileInpu ...

  3. Linux下vsftpd的安装,Java上传文件实现。

    首先我们需要查看是否已经安装vsftpd,输入命令 :vsftpd  -v.如果出现以下信息,那么就说明已经安装vsftpd 如果没有安装,那么输入命令   : yum  install vsftpd ...

  4. java上传文件夹文件

    这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得 ...

  5. java+上传文件夹

    最近在学习百度的开源上传组件WebUploader,写了一些示例以记录.WebUploader的缺点是没有一个比较好的现成的界面,这个界面需要自己去实现.自由度高了一些. WebUploader是由B ...

  6. 12@365 java上传文件(word、图片等)至服务器

    这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用 后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下) ...

  7. java 上传文件到FTP(centos中的ftp服务)

    ftp服务器系统:centos7 提供ftp的服务:vsftpd pom.xml 依赖 <dependency> <groupId>commons-net</groupI ...

  8. JAVA上传文件到FTP上

    添加maven <!-- https://mvnrepository.com/artifact/commons-net/commons-net --> <dependency> ...

  9. Java上传文件至SFTP服务器

    Windows搭建SFTP服务器 https://www.cnblogs.com/wangjunguang/p/9453611.html 注意点: 1.以管理员权限运行FreeSSHd 2.如果无法启 ...

随机推荐

  1. Linux中Cache内存占用过高解决办法

    在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个RHEL6的系统上,free命令的显示内容大概是这样一个状态: 这里的默认显示单位是kb,我的服务器是128G内存,所以数字显 ...

  2. 【Oracle】ORA 01810 格式代码出现两次-转

    一.Oracle中使用to_date()时格式化日期需要注意格式码 如:select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') fr ...

  3. Spark学习笔记——基于MLlib的机器学习

    使用MLlib库中的机器学习算法对垃圾邮件进行分类 分类的垃圾邮件的如图中分成4个文件夹,两个文件夹是训练集合,两个文件夹是测试集合 build.sbt文件 name := "spark-f ...

  4. [PGM] What is Probabalistic Graphical Models

    学术潜规则: 概率图模型提出的意义在于将过去看似零散的topic/model以一种统一的方式串联了起来,它便于从整体上看待这些问题,而非具体解决了某个细节. 举个例子:梯度下降,并非解决神经网络收敛问 ...

  5. [AWS] Deploy react project on EC2

    如何在aws部署项目 申请到亚马逊AWS免费账户后,我们可以拥有很多的免费云服务产品项目,其中包括: EC2云服务器. Amazon S3存储. Amazon RDS数据库. Amazon Cloud ...

  6. SpringBoot------单元测试

    1.添加测试依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g ...

  7. 【代码审计】XYHCMS V3.5URL重定向漏洞分析

      0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...

  8. Visual Studio(C#)快捷键与Eclipse(JAVA)快捷键对比

    Visual Studio与Eclipse快捷键对比   Visual Studio Eclipse 代码提示: Ctrl+J Ctrl+空格键 / Alt+/ .abcdefghijklmnopqr ...

  9. js for in 获得遍历数组索引和对象属性

    for in 遍历对象属性 获取的是对象的属性名 var person ={ name:"admin", age:"21", address:"sha ...

  10. ssh如何连接vmware的centos 6虚拟机

    先安装虚拟机,我使用的是WMware 11.1.3 build-3206955+Centos7 其中出现一个问题是,我需要在虚拟机上安装软件,需要上网,虚拟机有几种网络连接方式: 暂时了解的是,“仅主 ...