1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-07-16 22:46:24 +00:00

Keep working on uploads

This commit is contained in:
davigonz 2018-04-18 13:32:38 +02:00
parent bdd6a1be0c
commit f3a080e9a8
3 changed files with 18 additions and 12 deletions

View File

@ -0,0 +1 @@
Testing ownCloud uploads

View File

@ -42,7 +42,7 @@
<string name="upload_folder_path">to_upload</string> <string name="upload_folder_path">to_upload</string>
<string name="download_folder_path">downloaded</string> <string name="download_folder_path">downloaded</string>
<string name="error_copying_sample_file">Sample file could not be saved in temporal folder; upload will not work</string> <string name="error_copying_sample_file">Sample file could not be saved in temporal folder; upload will not work</string>
<string name="sample_file_name">oc_sample.png</string> <string name="sample_file_name">oc_sample.png</string>
<string name="sample_file_mimetype">image/png</string> <string name="sample_file_mimetype">image/png</string>
<string name="error_deleting_local_file">Downloaded file could not be deleted</string> <string name="error_deleting_local_file">Downloaded file could not be deleted</string>
</resources> </resources>

View File

@ -41,7 +41,6 @@ import android.widget.Toast;
import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.OwnCloudClientFactory; import com.owncloud.android.lib.common.OwnCloudClientFactory;
import com.owncloud.android.lib.common.authentication.OwnCloudCredentialsFactory; import com.owncloud.android.lib.common.authentication.OwnCloudCredentialsFactory;
import com.owncloud.android.lib.common.network.FileRequestEntity;
import com.owncloud.android.lib.common.network.OnDatatransferProgressListener; import com.owncloud.android.lib.common.network.OnDatatransferProgressListener;
import com.owncloud.android.lib.common.operations.OnRemoteOperationListener; import com.owncloud.android.lib.common.operations.OnRemoteOperationListener;
import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperation;
@ -53,7 +52,6 @@ import com.owncloud.android.lib.resources.files.RemoteFile;
import com.owncloud.android.lib.resources.files.RemoveRemoteFileOperation; import com.owncloud.android.lib.resources.files.RemoveRemoteFileOperation;
import com.owncloud.android.lib.resources.files.UploadRemoteFileOperation; import com.owncloud.android.lib.resources.files.UploadRemoteFileOperation;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
@ -102,7 +100,12 @@ public class MainActivity extends Activity implements OnRemoteOperationListener,
private static final String OC_TOTAL_LENGTH_HEADER = "OC-Total-Length"; private static final String OC_TOTAL_LENGTH_HEADER = "OC-Total-Length";
private static final String OC_X_OC_MTIME_HEADER = "X-OC-Mtime"; private static final String OC_X_OC_MTIME_HEADER = "X-OC-Mtime";
private static final String IF_MATCH_HEADER = "If-Match"; private static final String AUTHORIZATION_HEADER = "Authorization";
private static final String USER_AGENT_HEADER = "User-Agent";
private static final String CONTENT_TYPE_HEADER = "Content-Type";
private static final String USER_AGENT_VALUE = "Mozilla/5.0 (Android) ownCloud-android/2.7.0";
private static final String CONTENT_TYPE_VALUE = "multipart/form-data";
private OkHttpClient mOkHttpClient; private OkHttpClient mOkHttpClient;
@ -263,7 +266,8 @@ public class MainActivity extends Activity implements OnRemoteOperationListener,
final Request request = new Request.Builder() final Request request = new Request.Builder()
.url(URL + NEW_WEBDAV_PATH + USERNAME) .url(URL + NEW_WEBDAV_PATH + USERNAME)
.addHeader("Authorization", mCredentials) .addHeader(AUTHORIZATION_HEADER, mCredentials)
.addHeader(USER_AGENT_HEADER, USER_AGENT_VALUE)
.method("PROPFIND", null) .method("PROPFIND", null)
.build(); .build();
@ -309,8 +313,6 @@ public class MainActivity extends Activity implements OnRemoteOperationListener,
Long timeStampLong = fileToUpload.lastModified()/1000; Long timeStampLong = fileToUpload.lastModified()/1000;
String timeStamp = timeStampLong.toString(); String timeStamp = timeStampLong.toString();
RequestEntity entity = new FileRequestEntity(fileToUpload, mimeType);
// Let's first use OKHttp with the new endpoint without depending on our library operations // Let's first use OKHttp with the new endpoint without depending on our library operations
// UploadRemoteFileOperation uploadOperation = new UploadRemoteFileOperation(fileToUpload.getAbsolutePath(), remotePath, mimeType, timeStamp); // UploadRemoteFileOperation uploadOperation = new UploadRemoteFileOperation(fileToUpload.getAbsolutePath(), remotePath, mimeType, timeStamp);
@ -319,19 +321,22 @@ public class MainActivity extends Activity implements OnRemoteOperationListener,
if (!validServerAddress()) return; if (!validServerAddress()) return;
RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM) RequestBody requestBody = new MultipartBody.Builder()
.addFormDataPart("testImage", fileToUpload.getName(), RequestBody.create(mediaType, fileToUpload)) .setType(MultipartBody.FORM)
.addFormDataPart("data", fileToUpload.getName(), RequestBody.create(mediaType, fileToUpload))
.addFormDataPart("name", fileToUpload.getName())
.build(); .build();
final Request request = new Request.Builder() final Request request = new Request.Builder()
.url(URL + NEW_WEBDAV_PATH + USERNAME + remotePath) .url(URL + NEW_WEBDAV_PATH + USERNAME + remotePath)
.addHeader("Authorization", mCredentials) .addHeader(AUTHORIZATION_HEADER, mCredentials)
.addHeader(USER_AGENT_HEADER, USER_AGENT_VALUE)
.addHeader(CONTENT_TYPE_HEADER, CONTENT_TYPE_VALUE)
.addHeader(OC_TOTAL_LENGTH_HEADER, String.valueOf(fileToUpload.length())) .addHeader(OC_TOTAL_LENGTH_HEADER, String.valueOf(fileToUpload.length()))
.addHeader(OC_X_OC_MTIME_HEADER, timeStamp) .addHeader(OC_X_OC_MTIME_HEADER, timeStamp)
.put(requestBody) .put(requestBody)
.build(); .build();
mOkHttpClient.newCall(request).enqueue(new Callback() { mOkHttpClient.newCall(request).enqueue(new Callback() {
@Override public void onResponse(Call call, final Response response) throws IOException { @Override public void onResponse(Call call, final Response response) throws IOException {
@ -346,7 +351,7 @@ public class MainActivity extends Activity implements OnRemoteOperationListener,
final String putResult = response.body().string(); final String putResult = response.body().string();
showSuccessfulMessage(putResult); showSuccessfulMessage("Successful upload");
} }
} }