零. 前言
网上多数图片批量上传代码老旧不全, 遂成次文, 以节省博友时间
一. 代码实例
前端代码(使用 HTML5 multiple属性来支持多图片批量上传):
<form action="" enctype='multipart/form-data' method="post">
<div class="form-item">
<label>上传图片</label>
<input type="file" value="选择图片" name="image[]" multiple>
</div>
</form>
后端处理代码:
// 获取前台传来的图片资源(这里用 getFiles() 方法大致表示, 因为这个跟所用 Controller 框架相关, 如SpringMVC 、 Struts等, 甚至可能是 Servlet 直接获取, 具体项目具体使用, 这里就不一一举例了)
FileItem[] files = getFiles("image[]");
List<String> pictureUrlList = new ArrayList<String>();
for (int index = 0; index < files.length; index++) {
try {
byte[] bytes = IOUtils.toByteArray(files[index].getInputStream());
String filename = files[index].getFileName();
// 图片上传路径, 可能是独立的图片服务器, 也可能和应用程序放一起
String uploadPath = “http://img.cdn.com/upload/image/";
String extension = FilenameUtils.getExtension(filename).toLowerCase();
// 自定义一个生成不重复文件名的函数 getFilename()
String filename = getFilename() + extension;
// 上传
File pathToSave = new File(uploadPath, filename);
if (!pathToSave.getParentFile().exists()) {
pathToSave.getParentFile().mkdirs();
}
FileOutputStream fos = new FileOutputStream(pathToSave);
IOUtils.write(bytes, fos);
} catch (Exception e) {
}
}