0

去年我一直在使用我的 Android 应用程序将备份的 txt 文件保存到 Dropbox,没有任何问题。今天我还添加了将 JPG 文件从我的设备上传到 Dropbox 的代码,并且每张照片都缺少像素 - 通常是图片的下半部分 - 它们只是显示为下半部分都是灰色的。好像部分图片没有上传,但我无法解释原因。我已经搜索并没有在 Google 或 StackOverflow 上找到任何关于此问题的参考……这让我感到害怕,因为到目前为止我遇到的每一个问题我总是找到其他人遇到过这个问题并且有使固定。不敢相信我是第一个.....帮助!!!!!!

上传前的示例图片: https ://docs.google.com/file/d/0B7lHLBiiexXjc0JjbXpmMzZ2MGM/edit?usp=sharing

上传后的示例图片: https ://docs.google.com/file/d/0B7lHLBiiexXjMVhYeHdJWkZObE0/edit?usp=sharing

 private class backupPhotosToDropbox extends AsyncTask<String, Void, Void> {
 @Override
 protected Void doInBackground(String... params) {


               FileInputStream inputStream = null;
               try 
               {
                   String extStorageDirectory;
                   extStorageDirectory = Environment.getExternalStorageDirectory().toString();

                   File file = new File(extStorageDirectory+ "/TAPro2/Photos");

                   File imageList[] = file.listFiles();

                   for(int i=0; i<imageList.length; i++)
                   {
                       inputStream = new FileInputStream(imageList[i]);

                       Entry newEntry = mDBApi.putFile("/Photos/"+ imageList[i].getName(), inputStream, file.length(),null,null);
                           Log.i("DbExampleLog", "The uploaded file's rev is: " + newEntry.rev);
                   }

               }

               catch (DropboxUnlinkedException e) 
               {
                    Log.e("DbExampleLog", "User has unlinked.");
               } 
               catch (DropboxException e) 
               {
                    Log.e("DbExampleLog", "Something went wrong while uploading.");
               } 
               catch (FileNotFoundException e) 
               {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
               }

               if (inputStream != null) 
               {
                   try 
                   {
                       inputStream.close();
                   } 
                   catch (IOException e) {}
               }

    return null;
}

}

4

1 回答 1

1

是的 - 解决了这个问题。而不是使用 image.length 我在保管箱代码中使用了原始的 folder.length。我将 file.length 更改为 image[i].length,现在一切正常!!

于 2013-06-12T05:06:25.063 回答