Hi,

I am experiencing a strange problem when we use FormFile to upload a binary 
file.

After the upload, the check sum of binary file is changed, even though the 
size  is still same. But if the file is text file. Every thing seems fine.

The code I used to do the upload is very similar to the sample code 
provided in the struts package. Are there any people in this mail list have 
the  same problem. Are there any workaround.

Please reply email directly to me or at least CC me, cause I am not in this 
mail list. Thanks.

Yiru Zhang

private String uploadFile(FormFile file) throws 
FileNotFoundException,  IOException{
                 try {
                         String uploadpath =
                                 
PropService.getProperty("FileManager.TEMP_STORAGE_DIRECTORY");

                         java.io.File path = new java.io.File(uploadpath);
                         if (!path.isDirectory() || !path.exists()) {
//                      System.out.println("upload path" + uploadpath + "is 
not there. create it");
                                 path.mkdir();
                         }



                         String fileName = file.getFileName();

                         String contentType = file.getContentType();

                         String size = file.getFileSize() + "bytes";


                         InputStream instream = file.getInputStream();
                         String copyFile = uploadpath + "/" 
+fileName;
                         System.out.println("Copy File:" + copyFile );
                         OutputStream os = new FileOutputStream(copyFile);

                         if (file.getFileSize() < (32*1048576)) {
                                 byte[] buffer = new byte[8192];
                                 int bytesRead = 0;
                                 while ((bytesRead = 
instream.read(buffer,0,8192)) != -1) {
                                         os.write(buffer,0,bytesRead);
                                 }
                                 os.close();

                         }
                         else {
                                 System.out.println("the file is greater 
than 32MB!");
                         }
                         instream.close();
                         file.destroy();
                         return copyFile;

                 }  catch (FileNotFoundException fne) {
                         System.out.println(fne);
                         throw fne;

                 }  catch (IOException ioe) {
                         System.out.println(ioe);
                         throw ioe;

                 }


         }

Reply via email to