2015-04-22 191 views
1

從我的Android應用程序到Google App Engine,我在發佈zip文件;我也在發佈一個字符串。當谷歌App Engine的PHP腳本運行時,我的...將文件上傳到Google App Engine(PHP)

ob_start(); 
var_dump($_FILES); 
$result = ob_get_clean(); 
syslog(LOG_DEBUG, "VAR DUMP\n" . $result . "\n"); 

轉儲$ _FILES到日誌中的值我也登錄字符串的值。日誌具有字符串輸出,但沒有$ _FILES轉儲輸出。我讀THIS LINK,但這似乎與Web有關。我的Android代碼POST文件如下...

private void postExamplesZipToDrive(File file_zip){ 
    RequestParams request_params = new RequestParams(); 
    request_params.put("test", "Came thru"); 

    // 
    try{ request_params.put("file_zip", file_zip); } 
    catch(FileNotFoundException e){ 
     Log.e("postExamplesZipToDrive", "File not found"); 
     Toast.makeText(this, "Unable to upload.", Toast.LENGTH_SHORT).show(); 
     return; 
    } 

    AsyncHttpClient async_http_client = new AsyncHttpClient(); 

    async_http_client.post(UPLOAD_URL, request_params, new JsonHttpResponseHandler(){ 
     @Override 
     public void onSuccess(int code_status, Header[] headers, JSONArray success) { 
      Toast.makeText(getApplicationContext(), "" + code_status, Toast.LENGTH_SHORT).show(); 
      super.onSuccess(code_status, headers, success); 
     } 

     @Override 
     public void onFailure(int code_status, Header[] headers, String string_response, Throwable throwable){ 
      Toast.makeText(getApplicationContext(), "" + code_status, Toast.LENGTH_SHORT).show(); 
      Log.e("onFailure", code_status + "\n" + string_response); 
     } 
    }); 
} 

我的問題是,我是否正確張貼.zip文件?如何捕獲通常存儲在$ _FILES中的上傳文件?

回答

2

您可以使用php55中的直接文件上傳功能(請參閱https://gae-php-tips.appspot.com/2015/03/09/direct-file-uploads-for-php-5-5/)。

+0

嗯......我怎麼用這個?這不是基於網絡嗎?我正在嘗試從我的應用直接上傳,而無需與任何網頁進行交互。 – QuintoViento

+1

您只需要將app.yaml中的「runtime」設置爲「php55」,並且您應該可以在$ _FILES中看到您的文件。 – Mars

+0

這太瘋狂了,修復是多麼簡單 – QuintoViento

相關問題