Bonjour

Je suis en train de réaliser une application Flex/flash qui communique avec un serveur.


Je ne maitrise pas du tout java, mais j'aimerai uploader des fichiers sur un server google apps engine, muni de java.

j'ai trouvé un code qui me permet de recevoir des informations sur le fichier uploadé, mais je n'arrive pas a enregistrer le fichier.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package com.bnp.cardif.upload.servlet;
 
 
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
 
import java.io.InputStream;
import java.io.IOException;
import java.util.logging.Logger;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
 
public class UploadServletTest extends HttpServlet {
  private static final Logger log =
      Logger.getLogger(UploadServletTest.class.getName());
 
  public void doPost(HttpServletRequest req, HttpServletResponse res)
      throws ServletException, IOException {
    try {
      ServletFileUpload upload = new ServletFileUpload();
      res.setContentType("text/plain");
 
      FileItemIterator iterator = upload.getItemIterator(req);
      while (iterator.hasNext()) {
        FileItemStream item = iterator.next();
        InputStream stream = item.openStream();
 
        if (item.isFormField()) {
          log.warning("Got a form field: " + item.getFieldName());
        } else {
          log.warning("Got an uploaded file: " + item.getFieldName() +
                      ", name = " + item.getName());
 
 
 
 
          // You now have the filename (item.getName() and the
          // contents (which you can read from stream). Here we just
          // print them back out to the servlet output stream, but you
          // will probably want to do something more interesting (for
          // example, wrap them in a Blob and commit them to the
          // datastore).
          int len;
          byte[] buffer = new byte[8192];
          while ((len = stream.read(buffer, 0, buffer.length)) != -1) {
            res.getOutputStream().write(buffer, 0, len);
          }
        }
      }
    } catch (Exception ex) {
      throw new ServletException(ex);
    }
 
  }
}
lorque je j'upload un fichier, dans les logs j'ai bien le nom du fichier uploadé, mais le fichier n'est pas sauvegardé sur le serveur.
par exemple :
The server is running at http://localhost:8888/
[WARN] Got a form field: Filename
[WARN] Got an uploaded file: Filedata, name = test.pdf

Comment résoudre ce problème , sachant qu'on me parle de passer le fichier dans Blob, mais après quelques recherches, je ne vois pas trop comment faire ca (facilement)...

Pourriez vous m'aider ?

merci