2014-05-06 31 views
2

餘米使用改造上傳圖片到我的服務器 上傳工作正常 但是當圖像尺寸有點大的拋出一個異常改造Android的上傳視頻

java.net.SocketException: sendto failed: EPIPE (Broken pipe) 

這裏我的代碼

public interface RestClient { 
@Multipart 
@POST("/upload2.php") 
Response uploadUserIds(@Part("photo") TypedFile photo); 
} 

RestAdapter restAdapter = new RestAdapter.Builder() 
     .setEndpoint(UploadFiles.SERVER_URL) 
     .setLogLevel(RestAdapter.LogLevel.BASIC) 
     .setLog(new RestAdapter.Log() { 
      @Override 
      public void log(String msg) { 
       Log.i(TAG, msg); 
      } 
     }) 
     .build(); 

RestClient service = restAdapter.create(RestClient.class); 

//我的電話

Response tr = service.uploadUserIds(new TypedFile(typeFile, f)); 

回答

0

這是不這在客戶端並不一定是個問題。我強烈認爲文件大小超過服務器允許的maxUpload大小。

0

我也遇到過這個問題。我在模擬器上的Android客戶端中使用了Retrofit,並嘗試上傳(相當小的)測試視頻文件到我的Windows PC上在Eclipse中運行的服務器代碼。我設置了Retrofit進行完全日誌記錄使用:

RestAdapter restAdapter = new RestAdapter.Builder() 
     .setEndpoint("http://10.0.2.2:8080") 
     .setLogLevel(LogLevel.FULL) 
     .build(); 

這一直導致上面的錯誤,當試圖上傳某些文件時。 但是,當我使用setLogLevel(LogLevel.BASIC)將日誌級別設置爲基本時,那麼所有這些文件開始上傳正常。

所以我懷疑這可能是某種內部Retrofit錯誤,可能與緩衝區溢出有關。我不認爲這是服務器問題。

0

這可能是服務器端的問題。腳本可能會卡在代碼的某處,因此不會發布響應,同時服務器會關閉套接字。可能有兩個解決方案是:

  1. 解決在服務器側腳本的問題

第二個是不優選的:

  • 增加超時值設置爲在客戶端有大量的!
  • 希望這會有所幫助