1

我在android中使用以下函數,但在撥打uploader.upload()時出現錯誤「500 Java Heap Space」。如何使用MediaHttpUploader將圖像上傳到BlobStore?

如果我叫uploader.setDirectUploadEnabled(true)uploader.upload()之前,我得到錯誤「411長度要求」對upload()而不是錯誤500

public static String uploadImage(Context context, String file, MediaHttpUploaderProgressListener progressListener) 
      throws Exception { 
// The file is something like : /mnt/sdcard/wallpapers/image.jpg 
     File mediaFile = new File(file); 
     HttpTransport transport = new NetHttpTransport();  

     HttpRequestFactory factory = transport.createRequestFactory(null); 
//obtain the upload url 
     GenericUrl getUploadUrl = new GenericUrl(Util.getBaseUrl(context) 
       + "/myapp/blobservice?get-key"); 
     HttpRequest request = factory.buildGetRequest(getUploadUrl); 
     HttpResponse response1 = request.execute(); 

     String postUrl = convertStreamToString(response1.getContent()).trim(); 
// the returned post url when using the development server is something like : //http://192.168.1.4:8888/_ah/upload/agd5YWRnZXQychwLEhVfX0Jsb2JVcGxvYWRTZXNzaW9uX18Y2wUM 

     InputStreamContent mediaContent = new InputStreamContent("image/jpeg", 
       new BufferedInputStream(new FileInputStream(mediaFile))); 
     mediaContent.setLength(mediaFile.length()); 
     MediaHttpUploader uploader = new MediaHttpUploader(mediaContent,transport, null); 

     uploader.setProgressListener(progressListener); 

//the following line produces exception "500 Java heap space" on the local server 
//on the remote server I get "500: Internal server error" 

     HttpResponse response = uploader.upload(new GenericUrl(postUrl)); 
     if (!response.isSuccessStatusCode()) { 
      throw new Exception("Uploading image failed."); 
     } else { 
      String blobKey = convertStreamToString(response.getContent()).trim(); 
      return blobKey; 
     } 
    } 
+0

由於錯誤發生在服務器端,因此應該在產生錯誤的日​​志和服務器代碼中提供錯誤條目。 – 2012-08-22 08:44:02

+0

也許這可能有所幫助:http://stackoverflow.com/questions/15704816/google-app-engine-use-blobkey/15896876#15896876儘管它不能用MediaHttpUpload回答你的問題,但它顯示了一個工作代碼來上傳圖片容易與Resteasy – 2013-04-22 17:31:47

回答

相關問題