I found the error! Query does not work
Query query = pm.newQuery (BookImage.class, "email == '" + email + "'
& & bookid == '" + bookid +"'");

what I can do?

On Oct 22, 9:52 am, erikzamith <eice...@hotmail.com> wrote:
> Thanks! I also thought that. But I have 3 upload on the same page,
> which I think is that maybe now send all three forms (doPost) that
> have the same name.
>
> Here, I think I save the image
>
>                         BookImage myImage = new BookImage(bookid, email, 
> imageBlob);
>
>                         // persist image
>                         PersistenceManager pm = 
> Commons.instance().getPersistenceManager();
>                         pm.makePersistent(myImage);
>
> Thanks!
>
> On Oct 22, 8:48 am, Didier Durand <durand.did...@gmail.com> wrote:
>
> > Hi,
>
> > I think the issue is when you store the image not when you retrieve
> > it:the published code doesn't show how you store the image.
>
> > regards
> > didier
>
> > On Oct 22, 8:29 am, erikzamith <eice...@hotmail.com> wrote:
>
> > > > Not really what happens, apparently does not save the image (blob), or
> > > > email, or the idimage. because when you try to display it, is null.
> > > > This is the doGet
> > > > public void doGet(HttpServletRequest req, HttpServletResponse resp)
> > > >                         throws ServletException, IOException {
>
> > > >                 String email = req.getParameter("email");
> > > >                 String bookid = req.getParameter("bookid");
> > > >                 BookImage imagen = getImage(email, bookid );
>
> > > >                  if (imagen != null  && imagen.getImage() != null) {
>
> > > >                                 Blob imageBlob = imagen.getImage();
>
> > > >                                 // serve the first image
> > > >                                 resp.setContentType("image/jpg");
> > > >                                 
> > > > resp.getOutputStream().write(imageBlob.getBytes());
> > > >                         } else {
> > > >                                 // If no image is found with the given 
> > > > title, redirect the user
> > > >                                 // to
> > > >                                 // a static image
>
> > > >                                 
> > > > resp.sendRedirect("images/no_image.png");
> > > >                         }
>
> > > >         }
>
> > > private BookImage getImage(String email, String bookid) {
> > >                 PersistenceManager pm = 
> > > Commons.instance().getPersistenceManager();
> > >                 Query query = pm.newQuery(BookImage.class, "email == 
> > > '"+email+"' &&
> > > bookid == '"+bookid+"'");
> > >             query.setRange(0, 1);
> > >             try {
> > >                         List<BookImage> results = (List<BookImage>) 
> > > query.execute();
> > >                         if (results.iterator().hasNext()) {
> > >                     // If the results list is non-empty, return the first
> > > (and only)
> > >                     // result
> > >                     return results.get(0);
> > >                 }
> > >             } finally {
> > >                 query.closeAll();
> > >             }
>
> > >             return null;
> > >         }
>
> > > > On 22 oct, 05:34, Didier Durand <durand.did...@gmail.com> wrote:
>
> > > > > Hi Erik,
>
> > > > > To check (and then limit) the format, you can extract the picture from
> > > > > the mail as a byte[] and then use this byte[] to create an image via
> > > > > ImagesService.makeImage(byte[]) and then do Image.getFormat() to see
> > > > > if you accept the format or not.
>
> > > > > regards
> > > > > didier
>
> > > > > On Oct 21, 1:43 pm, erikzamith <eice...@hotmail.com> wrote:
>
> > > > > > Hello,
> > > > > > I have an image that would save the user (email) and a idimagen.
> > > > > > I use a form to send email and idimagen (Book). But do not 
> > > > > > persistence.
>
> > > > > > I also want to know how to limit the types of images (jpg, png and 
> > > > > > gif
> > > > > > only).
>
> > > > > > This is my
>
> > > > > > public class Upload extends HttpServlet {
> > > > > > @Override
> > > > > > public void doPost(HttpServletRequest request, HttpServletResponse 
> > > > > > res)
> > > > > > throws ServletException, IOException {
>
> > > > > > Long bookid = -4L;
> > > > > > String email = "";
> > > > > > Blob imageBlob = null;
> > > > > > try{
> > > > > > ServletFileUpload upload = new ServletFileUpload();
> > > > > > FileItemIterator iter = upload.getItemIterator(request);
> > > > > > while(iter.hasNext()){
> > > > > > FileItemStream imageItem = iter.next();
> > > > > > if(imageItem.isFormField()) {
> > > > > > String name = imageItem.getFieldName();
> > > > > > InputStream imgStream = imageItem.openStream();
>
> > > > > > byte [] buffer = new byte[1024];
> > > > > > int i=0;
> > > > > > while(true) {
> > > > > > int v = imgStream.read();
> > > > > > if(v == 0 || v == -1)
> > > > > > break;
> > > > > > buffer[i] = (byte) v;
> > > > > > i++;}
>
> > > > > > String value = new String(buffer,0,i);
>
> > > > > > if("bookid".equals(name)){
> > > > > > bookid = Long.valueOf(value);
> > > > > > System.out.println("bookid: "+bookid);}
>
> > > > > > if("email".equals(name))
> > > > > > email = value;
> > > > > > System.out.println("email: "+email);} else {
>
> > > > > > InputStream imgStream = imageItem.openStream();
> > > > > > imageBlob = new Blob(IOUtils.toByteArray(imgStream));}
> > > > > > }
>
> > > > > > // construct our entity objects
>
> > > > > > BookImage myImage = new BookImage(bookid, email, imageBlob);
>
> > > > > > // persist image
> > > > > > PersistenceManager pm = Commons.instance().getPersistenceManager();
> > > > > > pm.makePersistent(myImage);
>
> > > > > > // respond to query
> > > > > > res.setContentType("text/plain");
> > > > > > res.getOutputStream().write("OK!".getBytes());
>
> > > > > > } catch(FileUploadException e){
>
> > > > > > e.printStackTrace();
>
> > > > > > }
> > > > > > }
> > > > > > }
>
> > > > > > But when I show the picture, no picture, not saved any.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to