有两种方法

导包和上传配置自己搞;

第一种:

上传单个文件:

@RequestMapping("/addfile1")
public String addfile(@RequestParam("file")MultipartFile file)throws Exception{
String path="E:/idea/_1111/src/main/webapp/statics";
String newfile=FilenameUtils.concat(path,file.getOriginalFilename());
file.transferTo(new File(newfile));
return "inputfile";

这个方法的有点就是简单快速,但缺点就是不能更改上传的文件名。原理是直接把文件改变一个储存位置。

第二种:

上传单个文件

 @RequestMapping("/addfile")
public String addfile(@RequestParam("file")MultipartFile file, Model model)throws Exception{
String path="E:/idea/_1111/src/main/webapp/statics";
File updatefile=new File(path);
if (!updatefile.exists()){
updatefile.mkdir();
}
String filename=file.getOriginalFilename();
int intt=filename.lastIndexOf(".");
String str=filename.substring(intt);
String newfilename= UUID.randomUUID()+str;
newfilename=newfilename.replace("-","");
OutputStream out=new FileOutputStream(new File(path+File.separator+newfilename));
InputStream input=file.getInputStream();
byte [] b=new byte[1024];
int len=0;
int temn=0;
while ((temn=input.read())!=-1){
out.write(b,0,temn);
}
out.close();
input.close(); return "inputfile";
}

这种方法是把旧文件读出再写入新文件,再更改一下文件名,使用UUID伪随机。

上传多个文件

@RequestMapping("/addfile")
public String addfile(@RequestParam("file")MultipartFile files[], Model model)throws Exception{
String path="E:/idea/_1111/src/main/webapp/statics";
File updatefile=new File(path);
if (!updatefile.exists()){
updatefile.mkdir();
}
List<String> lii=new ArrayList<String>();
for(int i=0;i<files.length;i++) {
String filename = files[i].getOriginalFilename();
int intt = filename.lastIndexOf(".");
String str = filename.substring(intt);
String newfilename = UUID.randomUUID() + str;
newfilename = newfilename.replace("-", ""); OutputStream out = new FileOutputStream(new File(path + File.separator + newfilename));
InputStream input = files[i].getInputStream();
byte[] b = new byte[1024];
int temn = 0;
while ((temn = input.read(b)) != -1) {
out.write(b, 0, temn);
}
out.close();
input.close();
lii.add(newfilename);
}
model.addAttribute("file",lii); return "inputfile"; }

可以插入多个文件。用一个file数组接收。

ssm框架文件上传的更多相关文章

  1. SSH,SSM框架文件上传

    一.了解文件上传 1.1        什么是文件上传 将本地文件通过流的形式写到服务器上 1.2        文件上传的技术 JspSmartUpload: 其组件是应用jsp进行B/S程序开发过 ...

  2. 文件上传—SSM框架文件上传

    1.准备上传下载的api组件 <dependency> <groupId>commons-io</groupId> <artifactId>common ...

  3. ssh框架文件上传下载

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 第二百七十三节,Tornado框架-文件上传

    Tornado框架-文件上传 第一.普通表单上传文件 self.request.files["fafafa"] 获取上传文件信息,参数["上传文件框的name名称&quo ...

  5. tp框架-----文件上传

    之前也做过文件上传,现在学了tp,用tp怎么做呢? 第一步:做一个Wenjian控制器: <?php namespace Ceshi\Controller; use Think\Controll ...

  6. tp 框架 -文件上传

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 <?ph ...

  7. SSM实现文件上传

    1.导入上传需要的jar包 commons-fileupload-1.3.3.jar commons-io-2.6.jar 2.创建 index.jsp <%@ page contentType ...

  8. Android采取async框架文件上传

    页面效果 须要的权限 <uses-permission android:name="android.permission.INTERNET"/> 网络訪问权限; 布局文 ...

  9. 文件上传—SSH框架文件上传

    1.准备上传的api组件 <dependency> <groupId>commons-io</groupId> <artifactId>commons- ...

随机推荐

  1. “全栈2019”Java第六十七章:内部类、嵌套类详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  2. ThinkPHP 3.2.x 集成极光推送指北

    3.2版本已经过了维护生命周期,官方已经不再维护,请及时更新至5.0版本 -- ThinkPHP 官方仓库 以上,如果有条件,请关闭这个页面,然后升级至 ThinkPHP 5,如果由于各种各样的原因无 ...

  3. Mac下显示和隐藏“隐藏文件”

    命令行方式:显示/隐藏Mac隐藏文件命令如下(注意其中的空格并且区分大小写): 显示Mac隐藏文件的命令: defaults write com.apple.finder AppleShowAllFi ...

  4. P5038 [SCOI2012]奇怪的游戏 二分+网络流

    $ \color{#0066ff}{ 题目描述 }$ Blinker最近喜欢上一个奇怪的游戏. 这个游戏在一个 \(N \times M\) 的棋盘上玩,每个格子有一个数.每次\(Blinker\)会 ...

  5. ssh访问流程

    SSH是英文Secure Shell的简写形式.通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗.使用S ...

  6. jenkins定时

    分别的定义为:分 时 天 月 星期 Minutes within the hour (0–59) HOUR       Thehour of the day (0–23) DOM         Th ...

  7. 使用 json_serializable (flutter packages pub run build_runner build) 问题

    命令: flutter packages pub run build_runner build 使用 build_runner 生成 .g.dart 文件 flutter packages pub r ...

  8. UML-6.2-用例-用例模型/用例/场景关系

    参与者:具有某些行为的人或事物.如上一章中的收银员. |_主要参与者:收银员. |_协助参与者:程序(自动付费.帮收银员验证输入要素) |_幕后参与者:政府等(电子签章取证找公证机构) 用例:一组相关 ...

  9. post调试postman

    载地址:https://www.getpostman.com/ 教程地址:http://www.cnblogs.com/s380774061/p/4624326.html

  10. 用PL/sql连接oracle 弹窗出现 could not resolve the connect identifier specified 这个错误

    1 错误如下图: 图1 2.可能原因: 配置oracle客户端中tnsnames.ora文件时,把数据库名弄错,如下图: 图2 箭头所指位置出错.箭头处应该为我们安装时的数据库名(通常是orcl).而 ...