Using FileUpload Extension: Uploaded images are corrupt/distorted/lesser size
Hi, I am not able to properly upload an image file (binary) to the Restlet server using the Filepload extension. The uploaded images are either corrupt/distorted looking or they are of lesser size than original. I have tried using both FileItem.write(File f) method & using the InputStream. Are there any special properties/methods to be set for uploading a binary data ? I have been using curl to upload the image with the following command curl -F "upload=@img.jpg;type=image/jpg;filename=img.jpg" http://localhost: One strange behavior is that, when in the curl command, the type parameter is changed to image/jpeg, the uploaded image is still corrupt & distorted but looks differently in the picture manager than the one uploaded with image/jpg. Please help. PS: The versions of different libs used: restlet-2.1-SNAPSHOT commons-fileupload-1.2.1/1.2.2 (both tested) commons-io-1.3.1 servlet-api-2.4 portlet-api-1.0 Following is the code snippet. DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(1000240); RestletFileUpload upload = new RestletFileUpload(factory); List items = upload.parseRequest(getRequest()) . . for (final Iterator it = items.iterator(); it.hasNext();) { DiskFileItem fi = (DiskFileItem) it.next(); // Process the items that *really* contains an uploaded // file and save them on disk if (fi.getName() != null) { InputStream is = fi.getInputStream(); final int size=1024; byte[] buf; int ByteRead,ByteWritten=0; BufferedOutputStream outStream = new BufferedOutputStream(new FileOutputStream(uploadedFile), size); buf = new byte[size]; while ((ByteRead = is.read(buf, 0, size)) != -1) { outStream.write(buf, 0, ByteRead); ByteWritten += ByteRead; } outStream.flush(); outStream.close(); is.close(); //fi.write(uploadedFile) } Regards Lokendra -- http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2756062
Re: Using FileUpload Extension: Uploaded images are corrupt/distorted/lesser size
Hi, The problem occurs with text Files (with the pieces of text misplaced) as well and not just binary data. The users of this extension, please throw some light ! Regards Lokendra On Thu, Jun 2, 2011 at 4:16 PM, Lokendra Singh wrote: > > Hi, > > I am not able to properly upload an image file (binary) to the Restlet > server using the Filepload extension. The uploaded images are either > corrupt/distorted looking or they are of lesser size than original. > I have tried using both FileItem.write(File f) method & using the > InputStream. > Are there any special properties/methods to be set for uploading a binary > data ? > > I have been using curl to upload the image with the following command > curl -F "upload=@img.jpg;type=image/jpg;filename=img.jpg" > http://localhost: > > One strange behavior is that, when in the curl command, the type parameter > is changed to image/jpeg, the uploaded image is still corrupt & distorted > but looks differently in the picture manager than the one uploaded with > image/jpg. > Please help. > > PS: The versions of different libs used: > restlet-2.1-SNAPSHOT > commons-fileupload-1.2.1/1.2.2 (both tested) > commons-io-1.3.1 > servlet-api-2.4 > portlet-api-1.0 > > Following is the code snippet. > > DiskFileItemFactory factory = new DiskFileItemFactory(); > factory.setSizeThreshold(1000240); > RestletFileUpload upload = new RestletFileUpload(factory); > List items = upload.parseRequest(getRequest()) > . > . > for (final Iterator it = items.iterator(); it.hasNext();) { > DiskFileItem fi = (DiskFileItem) it.next(); > // Process the items that *really* contains an uploaded > // file and save them on disk > if (fi.getName() != null) { > InputStream is = fi.getInputStream(); > final int size=1024; > byte[] buf; > int ByteRead,ByteWritten=0; > BufferedOutputStream outStream = new BufferedOutputStream(new > FileOutputStream(uploadedFile), size); > buf = new byte[size]; > while ((ByteRead = is.read(buf, 0, size)) != -1) { > outStream.write(buf, 0, ByteRead); > ByteWritten += ByteRead; > } > outStream.flush(); > outStream.close(); > is.close(); > //fi.write(uploadedFile) > } > > Regards > Lokendra > -- http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2756665
Re: Using FileUpload Extension: Uploaded images are corrupt/distorted/lesser size
Hi, anyone on this issue. Is this a bug I am facing? Regards Lokendra On Fri, Jun 3, 2011 at 2:46 PM, Lokendra Singh wrote: > Hi, > > The problem occurs with text Files (with the pieces of text misplaced) as > well and not just binary data. > The users of this extension, please throw some light ! > > Regards > Lokendra > > > > On Thu, Jun 2, 2011 at 4:16 PM, Lokendra Singh wrote: > >> >> Hi, >> >> I am not able to properly upload an image file (binary) to the Restlet >> server using the Filepload extension. The uploaded images are either >> corrupt/distorted looking or they are of lesser size than original. >> I have tried using both FileItem.write(File f) method & using the >> InputStream. >> Are there any special properties/methods to be set for uploading a binary >> data ? >> >> I have been using curl to upload the image with the following command >> curl -F "upload=@img.jpg;type=image/jpg;filename=img.jpg" >> http://localhost: >> >> One strange behavior is that, when in the curl command, the type parameter >> is changed to image/jpeg, the uploaded image is still corrupt & distorted >> but looks differently in the picture manager than the one uploaded with >> image/jpg. >> Please help. >> >> PS: The versions of different libs used: >> restlet-2.1-SNAPSHOT >> commons-fileupload-1.2.1/1.2.2 (both tested) >> commons-io-1.3.1 >> servlet-api-2.4 >> portlet-api-1.0 >> >> Following is the code snippet. >> >> DiskFileItemFactory factory = new DiskFileItemFactory(); >> factory.setSizeThreshold(1000240); >> RestletFileUpload upload = new RestletFileUpload(factory); >> List items = upload.parseRequest(getRequest()) >> . >> . >> for (final Iterator it = items.iterator(); it.hasNext();) { >> DiskFileItem fi = (DiskFileItem) it.next(); >> // Process the items that *really* contains an uploaded >> // file and save them on disk >> if (fi.getName() != null) { >> InputStream is = fi.getInputStream(); >> final int size=1024; >> byte[] buf; >> int ByteRead,ByteWritten=0; >> BufferedOutputStream outStream = new BufferedOutputStream(new >> FileOutputStream(uploadedFile), size); >> buf = new byte[size]; >> while ((ByteRead = is.read(buf, 0, size)) != -1) { >> outStream.write(buf, 0, ByteRead); >> ByteWritten += ByteRead; >> } >> outStream.flush(); >> outStream.close(); >> is.close(); >> //fi.write(uploadedFile) >> } >> >> Regards >> Lokendra >> > > -- http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2758176
RE: Using FileUpload Extension: Uploaded images are corrupt/distorted/lesser size
Hi Lokendra, The internal connector on the 2.1 snapshot isn’t fully stable yet. I suggest pluging Jetty or Simple extensions for now. That should help here. Best regards, Jerome -- Restlet ~ Founder and Technical Lead ~ <http://www.restlet.org/> http://www.restlet.org Noelios Technologies ~ <http://www.noelios.com/> http://www.noelios.com De : Lokendra Singh [mailto:lsingh@gmail.com] Envoyé : dimanche 5 juin 2011 16:23 À : discuss@restlet.tigris.org Objet : Re: Using FileUpload Extension: Uploaded images are corrupt/distorted/lesser size Hi, anyone on this issue. Is this a bug I am facing? Regards Lokendra On Fri, Jun 3, 2011 at 2:46 PM, Lokendra Singh wrote: Hi, The problem occurs with text Files (with the pieces of text misplaced) as well and not just binary data. The users of this extension, please throw some light ! Regards Lokendra On Thu, Jun 2, 2011 at 4:16 PM, Lokendra Singh wrote: Hi, I am not able to properly upload an image file (binary) to the Restlet server using the Filepload extension. The uploaded images are either corrupt/distorted looking or they are of lesser size than original. I have tried using both FileItem.write(File f) method & using the InputStream. Are there any special properties/methods to be set for uploading a binary data ? I have been using curl to upload the image with the following command curl -F " <mailto:upload=@img.jpg;type=image/jpg;filename=img.jpg> upload=@img.jpg;type=image/jpg;filename=img.jpg" <http://localhost> http://localhost: One strange behavior is that, when in the curl command, the type parameter is changed to image/jpeg, the uploaded image is still corrupt & distorted but looks differently in the picture manager than the one uploaded with image/jpg. Please help. PS: The versions of different libs used: restlet-2.1-SNAPSHOT commons-fileupload-1.2.1/1.2.2 (both tested) commons-io-1.3.1 servlet-api-2.4 portlet-api-1.0 Following is the code snippet. DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(1000240); RestletFileUpload upload = new RestletFileUpload(factory); List items = upload.parseRequest(getRequest()) . . for (final Iterator it = items.iterator(); it.hasNext();) { DiskFileItem fi = (DiskFileItem) it.next(); // Process the items that *really* contains an uploaded // file and save them on disk if (fi.getName() != null) { InputStream is = fi.getInputStream(); final int size=1024; byte[] buf; int ByteRead,ByteWritten=0; BufferedOutputStream outStream = new BufferedOutputStream(new FileOutputStream(uploadedFile), size); buf = new byte[size]; while ((ByteRead = is.read(buf, 0, size)) != -1) { outStream.write(buf, 0, ByteRead); ByteWritten += ByteRead; } outStream.flush(); outStream.close(); is.close(); //fi.write(uploadedFile) } Regards Lokendra -- http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2759029
Re: Using FileUpload Extension: Uploaded images are corrupt/distorted/lesser size
Upgrading to the latest restlet snapshot solved the case. Thanks Lokendra On Mon, Jun 6, 2011 at 6:25 PM, Jerome Louvel wrote: > Hi Lokendra, > > > > The internal connector on the 2.1 snapshot isn’t fully stable yet. I > suggest pluging Jetty or Simple extensions for now. That should help here. > > > > Best regards, > Jerome > -- > Restlet ~ Founder and Technical Lead ~ > http://www.restlet.org<http://www.restlet.org/> > Noelios Technologies ~ http://www.noelios.com > > > > > > > > > > *De :* Lokendra Singh [mailto:lsingh@gmail.com] > *Envoyé :* dimanche 5 juin 2011 16:23 > *À :* discuss@restlet.tigris.org > *Objet :* Re: Using FileUpload Extension: Uploaded images are > corrupt/distorted/lesser size > > > > Hi, anyone on this issue. Is this a bug I am facing? > > > Regards > Lokendra > > On Fri, Jun 3, 2011 at 2:46 PM, Lokendra Singh > wrote: > > Hi, > > The problem occurs with text Files (with the pieces of text misplaced) as > well and not just binary data. > The users of this extension, please throw some light ! > > Regards > Lokendra > > > > On Thu, Jun 2, 2011 at 4:16 PM, Lokendra Singh > wrote: > > > > Hi, > > I am not able to properly upload an image file (binary) to the Restlet > server using the Filepload extension. The uploaded images are either > corrupt/distorted looking or they are of lesser size than original. > I have tried using both FileItem.write(File f) method & using the > InputStream. > Are there any special properties/methods to be set for uploading a binary > data ? > > I have been using curl to upload the image with the following command > curl -F "upload=@img.jpg;type=image/jpg;filename=img.jpg" http://localhost > : > > One strange behavior is that, when in the curl command, the type parameter > is changed to image/jpeg, the uploaded image is still corrupt & distorted > but looks differently in the picture manager than the one uploaded with > image/jpg. > Please help. > > PS: The versions of different libs used: > restlet-2.1-SNAPSHOT > commons-fileupload-1.2.1/1.2.2 (both tested) > commons-io-1.3.1 > servlet-api-2.4 > portlet-api-1.0 > > Following is the code snippet. > > DiskFileItemFactory factory = new DiskFileItemFactory(); > factory.setSizeThreshold(1000240); > RestletFileUpload upload = new RestletFileUpload(factory); > List items = upload.parseRequest(getRequest()) > . > . > for (final Iterator it = items.iterator(); it.hasNext();) { > DiskFileItem fi = (DiskFileItem) it.next(); > // Process the items that *really* contains an uploaded > // file and save them on disk > if (fi.getName() != null) { > > InputStream is = fi.getInputStream(); > final int size=1024; > byte[] buf; > int ByteRead,ByteWritten=0; > BufferedOutputStream outStream = new BufferedOutputStream(new > FileOutputStream(uploadedFile), size); > buf = new byte[size]; > while ((ByteRead = is.read(buf, 0, size)) != -1) { > outStream.write(buf, 0, ByteRead); > ByteWritten += ByteRead; > } > outStream.flush(); > outStream.close(); > is.close(); > > //fi.write(uploadedFile) > > } > > Regards > Lokendra > > > > > -- http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2759434