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. Java知多少(29)覆盖和重载

    在类继承中,子类可以修改从父类继承来的方法,也就是说子类能创建一个与父类方法有不同功能的方法,但具有相同的名称.返回值类型.参数列表. 如果在新类中定义一个方法,其名称.返回值类型和参数列表正好与父类 ...

  2. C# Winform 防止MDI子窗体重复打开

    可以在MDI主窗体中添加以下方法. //防止打开多个窗体 private bool ShowChildrenForm(string p_ChildrenFormText) { int i; //依次检 ...

  3. 自己开发chrome插件生成二维码

    摘要: 最近在开发微信项目时,需要在微信调试,所以经常会在微信中输入本地服务地址,输入起来特别麻烦,所以自己就想了想微信中的扫一扫,然后开发了这款chrome插件,将当前url生成二维码,用微信扫一扫 ...

  4. SpringBoot-服务端参数验证-JSR-303验证框架

    1. springboot 默认集成了 hibernate-validator,它默认是生效的,可以直接使用. 比如: @RestController @RequestMapping("/h ...

  5. 19迭代模式Iterator

    一.什么是迭代模式 Iterator模式也叫迭代模式,是行为模式之 一,它把对容器中包含的内部对象的访问委让给 外部类,使用Iterator(遍历)按顺序进行遍历 访问的设计模式. 二.不使用迭代模式 ...

  6. 描述: http通讯基础类

    package com.founder.ec.web.util.payments.payeco.http; import com.founder.ec.web.util.payments.payeco ...

  7. python单引号(')、双引号(")、三引号(''',""")

    python对字符串的表示方法比c更有灵活性,但是也更难理解. 为了在平时使用.看代码过程中对着单引号(').双引号(").三引号(''',""")不混淆,知道 ...

  8. 排序算法--选择排序(Selection Sort)_C#程序实现

    排序算法--选择排序(Selection Sort)_C#程序实现 排序(Sort)是计算机程序设计中的一种重要操作,也是日常生活中经常遇到的问题.例如,字典中的单词是以字母的顺序排列,否则,使用起来 ...

  9. .net运行时dll的查找路径顺序

    D:\项目路径\.target\项目名.BLL.pdb”.已完成生成项目“D:\项目路径\项目名.BLL\项目名.BLL.csproj”(默认目标)的操作.ResolveAssemblyReferen ...

  10. ipv6禁用导致rpcbind服务启动失败解决办法

    参考文档:http://blog.51cto.com/hld1992/2055028