Hallo!
Ich versuche derzeit gerade ein Servlet zu schreiben welches von einer GWT Anwendung eine Datei entgegen nimmt und diese in einer Datenabnk speichert. Ich habe das Servlet ausd verschiedenen Quellen aus dem Internet zusammengebastelt und es funktioniert auch in der Entwicklungsumgebung. Alelrdings hat das Servlet noch einen Fehler: Die Datei wird zunächst im Dateisystem gespeichert und erst dann in der DB. Das will ich aber nicht, die Datei soll gleich in der DB gespeichert werden.
Was muss ich dafür ändern? Hier ist der Quellcode:
Vielen Dank für eure Hilfe, wäre super wenn ihr mir helft!
Florian
Ich versuche derzeit gerade ein Servlet zu schreiben welches von einer GWT Anwendung eine Datei entgegen nimmt und diese in einer Datenabnk speichert. Ich habe das Servlet ausd verschiedenen Quellen aus dem Internet zusammengebastelt und es funktioniert auch in der Entwicklungsumgebung. Alelrdings hat das Servlet noch einen Fehler: Die Datei wird zunächst im Dateisystem gespeichert und erst dann in der DB. Das will ich aber nicht, die Datei soll gleich in der DB gespeichert werden.
Was muss ich dafür ändern? Hier ist der Quellcode:
Java:
public class ImageUpload extends HttpServlet {
private static final long serialVersionUID = -5938868593144607557L;
private Logger log = Logger.getLogger(ImageUpload.class);
private FileInputStream inputStream;
private String content_type = null;
@SuppressWarnings("unchecked")
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
log.debug("service has been called");
if(!ServletFileUpload.isMultipartContent(request))
return;
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload servletUpload = new ServletFileUpload(factory);
List fileItems = null;
try {
fileItems = servletUpload.parseRequest(request);
}
catch(FileUploadException e){
log.error(e);
return;
}
for(java.util.Iterator i = fileItems.iterator(); i.hasNext();){
FileItem item = (FileItem) i.next();
if(item.isFormField())
continue;
String fileName = item.getName();
int slash = fileName.lastIndexOf("/");
if(slash == -1){
slash = fileName.lastIndexOf("\\");
}
if(slash != -1) {
fileName = fileName.substring(slash+1);
}
try {
int galleryId = -1;
galleryId = Integer.parseInt(request.getParameter("galleryId"));
log.debug("Gallery ID: "+galleryId);
if(galleryId != -1){
Gallery temp = new Gallery();
temp.setPID(galleryId);
Gallery gallery = new Gallery(temp);
log.debug("Gallery Name: "+gallery.getName());
content_type = item.getContentType();
File uploadedFile = new File(fileName);
item.write(uploadedFile);
inputStream = new FileInputStream(uploadedFile);
byte[] b = new byte[(int) uploadedFile.length()];
inputStream.read(b);
JImage image = new JImage();
image.setCreationDate(new Date());
image.setDeleted(false);
image.setImageTyp(content_type);
image.setName(fileName);
image.setSubtitle("");
image.setGallery(gallery);
image.setViews(0);
image.setImage(b);
image.addImage();
gallery.getImages().add(image);
gallery.update();
response.setContentType("text/html");
response.getWriter().print(image.getPID());
}
}
catch (Exception e) {
log.error(e);
}
}
}
}
Vielen Dank für eure Hilfe, wäre super wenn ihr mir helft!
Florian