我允许在程序中上传JPG文件。我想做的是设置照片数量的限制,例如15张。
所以我的JSP文件中包含以下内容:
@RequestMapping(value = "publish4" ,method = RequestMethod.POST)
public ModelAndView publish4(@Valid @ModelAttribute("fourthPublicationForm") final FourthPublicationForm form, final BindingResult errors,
@RequestParam("type") String type, @RequestParam("operation") String operation , @RequestParam CommonsMultipartFile[] fileUpload) {
if (errors.hasErrors()) {
//return publish4();
}
long userid = us.findByUsername(SecurityContextHolder.getContext().getAuthentication().getName()).getUserId();
Publication aux = ps.create(form.getTitle(), form.getAddress(), operation, form.getPrice(), form.getDescription(),
type, form.getBedrooms(), form.getBathrooms(), form.getFloorSize(), form.getParking(),userid);
if (fileUpload != null && fileUpload.length > 0) {
for (CommonsMultipartFile aFile : fileUpload){
System.out.println("Saving file: " + aFile.getOriginalFilename());
UploadFile uploadFile = new UploadFile();
uploadFile.setId((int) (Math.random()*1000000));
uploadFile.setPublicationId(Long.toString(aux.getPublicationid()));
uploadFile.setData(aFile.getBytes());
final long limit = 20 * 1024 * 1024; //10MB
System.out.println("I'm about to save with id: " + uploadFile.getId());
if(aFile.getSize() < limit && uploadFile.getData().length > 0) {
if(aFile.getOriginalFilename().contains(".jpg")) {
fileUploadImpl.save(uploadFile);
}else {
System.out.println("Sth went wrong with file format");
}
}else {
System.out.println("File is too big or it's empty");
}
}
}
return new ModelAndView("redirect:/meinHaus/home");
}
这是我的控制器的一部分。这项工作正常,如果超过15张照片,我显然可以在此处进行检查或使程序不上传,但是我要向用户发送一条消息,让他知道他不能上传15张以上的照片。
for (auto& s : company)
{
cout << s.index << endl;
}
如您所见,我在控制器中声明了这一点 @Valid @ModelAttribute(“ fourthPublicationForm”)最终的ThirdPublicationForm表单
但是我不确定如何从那里获取文件数量然后显示消息?现在该课程为空。
答案 0 :(得分:1)
我不确定我是否正确理解了查询;如果您要检查上传的文件数,那么在您的代码中,fileUpload.length
会为您提供。然后从类似这样的控制器向您的jsp(视图)发送警告消息
attributes.addFlashAttribute("errorMsg", "Not more than 15 files allowed!");
查看此链接https://howtodoinjava.com/spring-mvc/spring-mvc-multi-file-upload-example/(可能无法在Chrome中打开),他做过类似的事情,但对图像而不是数组使用了MultipartFile列表。
此外,使用RequestParam
,您可以检查带有最小和最大限制的大小,请参阅此链接以获取字符串https://www.javaquery.com/2018/02/passing-and-validating-requestparam-in.html。但是,我不知道它是否适合您的情况下的一系列对象。