1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-07-02 20:26:23 +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
sample_client
assets
res/values
src/com/owncloud/android/lib/sampleclient

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

@ -42,7 +42,7 @@
<string name="upload_folder_path">to_upload</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="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="error_deleting_local_file">Downloaded file could not be deleted</string>
</resources>

@ -41,7 +41,6 @@ import android.widget.Toast;
import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.OwnCloudClientFactory;
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.operations.OnRemoteOperationListener;
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.UploadRemoteFileOperation;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.json.JSONException;
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_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;
@ -263,7 +266,8 @@ public class MainActivity extends Activity implements OnRemoteOperationListener,
final Request request = new Request.Builder()
.url(URL + NEW_WEBDAV_PATH + USERNAME)
.addHeader("Authorization", mCredentials)
.addHeader(AUTHORIZATION_HEADER, mCredentials)
.addHeader(USER_AGENT_HEADER, USER_AGENT_VALUE)
.method("PROPFIND", null)
.build();
@ -309,8 +313,6 @@ public class MainActivity extends Activity implements OnRemoteOperationListener,
Long timeStampLong = fileToUpload.lastModified()/1000;
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
// UploadRemoteFileOperation uploadOperation = new UploadRemoteFileOperation(fileToUpload.getAbsolutePath(), remotePath, mimeType, timeStamp);
@ -319,19 +321,22 @@ public class MainActivity extends Activity implements OnRemoteOperationListener,
if (!validServerAddress()) return;
RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("testImage", fileToUpload.getName(), RequestBody.create(mediaType, fileToUpload))
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("data", fileToUpload.getName(), RequestBody.create(mediaType, fileToUpload))
.addFormDataPart("name", fileToUpload.getName())
.build();
final Request request = new Request.Builder()
.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_X_OC_MTIME_HEADER, timeStamp)
.put(requestBody)
.build();
mOkHttpClient.newCall(request).enqueue(new Callback() {
@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();
showSuccessfulMessage(putResult);
showSuccessfulMessage("Successful upload");
}
}