Hallo versuche ich Operationen wie Hochladen einer Datei, Anzeigen einer Datei, Herunterladen einer Datei und Löschen einer Datei mit Feder mvc Ich habe Erfolg beim Hochladen von Datei und Löschen von Datei alle Operationen arbeiten gut, aber dann was passiert ist, wenn ich die hochgeladene Datei kann das Hochladen oder Bild angezeigt wird oder zweimal und immer java.lang.IllegalStateException Download: getOutputStream() bereits für diese AntwortHochladen, Anzeigen, Herunterladen und Löschen von Dateien mit Feder mvc
<form method="post" action="doUpload" enctype="multipart/form-data">
<table border="0">
<tr>
<td>Pick file #1:</td>
<td><input type="file" name="fileUpload" size="50" /></td>
</tr>
<tr>
<td>Pick file #2:</td>
<td><input type="file" name="fileUpload" size="50" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Upload" /></td>
</tr>
</table>
</form>
<table border="1" bgcolor="black" width="600px">
<tr style="background-color: teal; color: white; text-align: center;"
height="40px">
<td>File Name</td>
<td>Image</td>
<td>Download</td>
<td>Delete</td>
</tr>
<c:forEach items="${employeeList}" var="user">
<tr style="background-color: white; color: black; text-align: center;"
height="30px">
<td><c:out value="${user.fileName}" /></td>
<td><img src="show?id=${user.id}" /></td>
<td><a href="edit?id=${user.id}">Download</a></td>
<td><a href="delete?id=${user.id}">Delete</a></td>
</tr>
</c:forEach>
</table>
genannt
@Controller
@RequestMapping("/")
public class RegistrationController {
@Autowired
private IRegistrationService registerService;
@RequestMapping(value = "/saveParentAndStudentFromAdmin", method = RequestMethod.POST)
public ModelAndView saveParentAndStudentByAdmin(
@ModelAttribute Student student,
@RequestParam CommonsMultipartFile[] fileUpload) {
if (fileUpload != null && fileUpload.length > 0) {
for (CommonsMultipartFile aFile : fileUpload) {
System.out.println("Saving file: "
+ aFile.getOriginalFilename());
student.setFileName(aFile.getOriginalFilename());
student.setFileType(aFile.getContentType());
student.setData(aFile.getBytes());
registerService.saveParentAndStudentByAdmin(student);
}
}
java.util.List<Student> uploadedFiles = registerService.findAllFiles();
return new ModelAndView("StudentEnrollmentFromAdmin", "employeeList",
uploadedFiles);
}
@RequestMapping("delete")
public ModelAndView deleteUser(@RequestParam int id) {
registerService.deleteRow(id);
java.util.List<Student> uploadedFiles = registerService.findAllFiles();
return new ModelAndView("StudentEnrollmentFromAdmin", "employeeList",
uploadedFiles);
}
@RequestMapping("show")
public ModelAndView displayImage(@RequestParam int id,
HttpServletResponse response, HttpServletRequest request) {
System.out.println("Id to display image: " + id);
Student item = registerService.get(id);
response.setContentType("image/jpeg, image/jpg, image/png, image/gif");
try {
response.getOutputStream().write(item.getData());
} catch (IOException e) {
e.printStackTrace();
}
try {
response.getOutputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
return new ModelAndView("StudentEnrollmentFromAdmin");
}
@RequestMapping("downalod")
public ModelAndView downloadFile(@RequestParam int id,
HttpServletResponse response, HttpServletRequest request) {
System.out.println("Id to download: " + id);
Student student = registerService.get(id);
response.setContentType(student.getFileType());
response.setContentLength(student.getData().length);
response.setHeader("Content-Disposition", "attachment; filename=\""
+ student.getFileName() + "\"");
try {
FileCopyUtils.copy(student.getData(), response.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
java.util.List<Student> uploadedFiles = registerService.findAllFiles();
return new ModelAndView("StudentEnrollmentFromAdmin", "employeeList",
uploadedFiles);
}
}
sehen, ich habe meine Frage nach der Aktualisierung noch einige Dinge ausprobiert –
Sie kein neues Modeland zurückkehren können, wenn Sie die Verwendung Antwort Ausgangsstrom; o Sie geben null zurück o Sie verwenden den Code, den ich gepostet habe –