一个jar包里的网站之文件上传
忙啊。码农就这命,抽不出时间写东西啊。
不过,在忙也得做知识积累啊。
工头说:有没有一种简单的配置能让tomcat变得很安全。
>_< 如果有,请大神悄悄的告诉我。
tomcat ,说起来似乎跟java 沾边的东西都会被人认为很复杂,相反的跟php沾边就会被认为很方便快捷。
好吧回到spring boot。spring boot demo里有文件上传的例子。
但是很多时候我门希望支持文件批量上传。额 ,这个demo就没有了,不过没关系自己动手丰衣足食。
首先我门需要一个页面,当然页面不是很漂亮,大家都是爷们就将就下吧,只要找的老婆漂亮,其他的好看与否都无所谓了。
<html>
<body>
<form method="POST" enctype="multipart/form-data"
action="/upload">
<input type="file" name="file" multiple="multiple">
<br />
<input type="submit"
value="Upload">
Press here to upload the file!
</form>
</body>
</html>
额,神马?你说multiple不支持ie6。现在,朕告诉你,凡是还使用ie6的愚民不是朕的子民,朕没有义务给他们发放福利。
额。。。难看是难看了点,不过使用bootstrap什么的孩子可以相当方面的美化下。
至于那些顾虑ie6的圣人贤者门,就自己写jquery 或者找插件吧。
spring boot 说要使用他的框架上传文件就必须要有一个MultipartConfigElement
bean
嗯,那就有吧,照抄就是了。
@Bean
MultipartConfigElement multipartConfigElement() {
MultiPartConfigFactory factory = new MultiPartConfigFactory();
factory.setMaxFileSize("128KB");
factory.setMaxRequestSize("128KB");
return factory.createMultipartConfig();
}
128k什么的就不要吐槽了。
现在看原版的control demo
@Controllerpublic class FileUploadController {
@RequestMapping(value="/upload", method=RequestMethod.GET)
public @ResponseBody String provideUploadInfo() {
return "You can upload a file by posting to this same URL.";
}
@RequestMapping(value="/upload", method=RequestMethod.POST)
public @ResponseBody String handleFileUpload(@RequestParam("name") String name,
@RequestParam("file") MultipartFile file){
if (!file.isEmpty()) {
try {
byte[] bytes = file.getBytes();
BufferedOutputStream stream =
new BufferedOutputStream(new FileOutputStream(new File(name + "-uploaded")));
stream.write(bytes);
stream.close();
return "You successfully uploaded " + name + " into " + name + "-uploaded !";
} catch (Exception e) {
return "You failed to upload " + name + " => " + e.getMessage();
}
} else {
return "You failed to upload " + name + " because the file was empty.";
}
}}
看到这个代码我震惊了。多好的代码呀。嗯。。只需要把
MultipartFile file 变成list<MultipartFile> file 就是一活脱脱的批量上传代码。
不过就是代码量有点大。。得改改。。
于是乎,本码农就加几行代码
public class FilesUpload {
private final static String FOLDER = "H:\\mytestfolder\\filesupload\\";
@RequestMapping(value = "/upload", method = RequestMethod.GET)
public @ResponseBody String provideUploadInfo() {
return "You can upload a file by posting to this same URL.";
}
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public @ResponseBody String handleFileUpload(
@RequestParam("file") List<MultipartFile> files) {
List<String> message = new ArrayList<String>();
for (MultipartFile file : files) {
String name = file.getOriginalFilename();
if (!file.isEmpty()) {
try {
file.transferTo(new File(FOLDER + name));
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
message.add(name + " : ok ");
} else {
message.add(name + " : null");
}
}
return message.toString();
}
}
.....完成了。。
亲们 欢迎复制,不过请注明出自 “这个世界不真实”。
参考地址:http://spring.io/guides/gs/uploading-files/
- ASP.NET MVC 网站开发总结(二)——一个或多个文件的异步或同步上传
- 当网站不允许上传asp cer cdx htr文件时的一个解决方法!
- 当网站不允许上传,asp cer cdx htr等文件时, 上传一个stm文件.
- 当网站不允许上传asp cer cdx htr文件时的一个解决方法! Author: Neeao From:http://www.neeao.info
- [黑客技术]当网站不允许上传asp cer cdx htr文件时的一个解决方法
- 强烈推荐一个上传文件的网站--MediaFire
- 给单位网站文章发布系统增加一个不完美的文件上传功能
- 一个可以免费上传300MB文件的网站
- 当网站不允许上传asp cer cdx htr文件时的一个解决方法
- ASP.NET MVC 网站开发总结(二)——一个或多个文件的异步或同步上传
- 关于java本地读取文件和打包成jar上传到服务器读取的区别
- 一个简单的上传文件测试例子
- 一个简单的php文件上传程序
- struts2 文件上传(指定上传图片,单文件上传和批量上传放在一个jsp和Action中)
- eWebEditor 解决上传100K的限制及在上传文件时提示请选择一个有效的文件的解决方法
- 一个好网站http://www.docjar.com/
- 一个文件上传的类
- 每天一个linux命令(26):用SecureCRT来上传和下载文件
- 一个简单地应用--从客户端向服务器发送数据.post,get.httpclientget,httpclinetpost,文件上传.
- 将本地CSV格式文件内容上传到服务器的一个简单例子