问题引入:在上传一个三维模型的时候需要有一个预览图,这样的是上传文件是有一个对应关系的,而用getFiles是按照页面上的先后顺序来取的,无法满足要求。
这里是需要用到一个getParameterName() 的方法,这个是用于获取到页面上的文件上传框的name 值,这样就可以很轻易的区分出对应的文件上传框了。
直接附上代码
页面代码
<h1>上传单个文件</h1>
<div class="form_box">
<form action="/file/upload" method="post" enctype="multipart/form-data">
<input type="file" name = "file1" /><br>
<button type="submit" id="save">上传</button>
</form>
</div>
<hr>
<h1>上传多个文件</h1>
<div class="form_box">
<form action="/file/uploadMany" method="post" enctype="multipart/form-data">
<input type="file" name = "file1" /><br>
<input type="file" name = "file2" /><br>
<input type="text" name = "attr" /><br>
<button type="submit" id="save">上传</button>
</form>
</div>
java代码
public class UploadController extends Controller {
public void uploadfile(){
render("uploadfile.html");
}
public void uploadMany() {
List<UploadFile> files = getFiles();
for (UploadFile uploadFile : files) {
if (uploadFile.getParameterName().equals("file1")) {
System.err.println("file1" + uploadFile.getFileName());
} else if (uploadFile.getParameterName().equals("file2")) {
System.err.println("file2" + uploadFile.getFileName());
}
}
System.err.println("attr" +getPara("attr"));
}
public void upload() {
UploadFile file = getFile();
if (file!=null){
System.err.println("file"+file.getFileName());
}
}
}
这里还有一个东西 getFiles和getFile是可以同时存在的,而getFile只能有一个。