mirror of
https://github.com/owncloud/android-library.git
synced 2025-06-08 00:16:09 +00:00
Fix bug in chunked upload (work in progress)
This commit is contained in:
parent
3d8ec568ec
commit
4c1f91e9ef
@ -32,6 +32,7 @@ import java.io.RandomAccessFile;
|
|||||||
import java.nio.channels.FileChannel;
|
import java.nio.channels.FileChannel;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
import org.apache.commons.httpclient.Header;
|
||||||
import org.apache.commons.httpclient.methods.PutMethod;
|
import org.apache.commons.httpclient.methods.PutMethod;
|
||||||
|
|
||||||
import com.owncloud.android.lib.common.OwnCloudClient;
|
import com.owncloud.android.lib.common.OwnCloudClient;
|
||||||
@ -49,6 +50,7 @@ public class ChunkedUploadRemoteFileOperation extends UploadRemoteFileOperation
|
|||||||
public static final long CHUNK_SIZE = 1024000;
|
public static final long CHUNK_SIZE = 1024000;
|
||||||
private static final String OC_CHUNKED_HEADER = "OC-Chunked";
|
private static final String OC_CHUNKED_HEADER = "OC-Chunked";
|
||||||
private static final String OC_CHUNK_SIZE_HEADER = "OC-Chunk-Size";
|
private static final String OC_CHUNK_SIZE_HEADER = "OC-Chunk-Size";
|
||||||
|
private static final String OC_CHUNK_X_OC_MTIME_HEADER = "X-OC-Mtime";
|
||||||
private static final String TAG = ChunkedUploadRemoteFileOperation.class.getSimpleName();
|
private static final String TAG = ChunkedUploadRemoteFileOperation.class.getSimpleName();
|
||||||
|
|
||||||
public ChunkedUploadRemoteFileOperation(String storagePath, String remotePath, String mimeType){
|
public ChunkedUploadRemoteFileOperation(String storagePath, String remotePath, String mimeType){
|
||||||
@ -99,6 +101,12 @@ public class ChunkedUploadRemoteFileOperation extends UploadRemoteFileOperation
|
|||||||
mPutMethod.addRequestHeader(OC_CHUNKED_HEADER, OC_CHUNKED_HEADER);
|
mPutMethod.addRequestHeader(OC_CHUNKED_HEADER, OC_CHUNKED_HEADER);
|
||||||
mPutMethod.addRequestHeader(OC_CHUNK_SIZE_HEADER, chunkSizeStr);
|
mPutMethod.addRequestHeader(OC_CHUNK_SIZE_HEADER, chunkSizeStr);
|
||||||
mPutMethod.addRequestHeader(OC_TOTAL_LENGTH_HEADER, totalLengthStr);
|
mPutMethod.addRequestHeader(OC_TOTAL_LENGTH_HEADER, totalLengthStr);
|
||||||
|
|
||||||
|
// Tell to the server what is the last modification date of the file to upload
|
||||||
|
Long timeStampLong = System.currentTimeMillis()/1000;
|
||||||
|
String timeStamp = timeStampLong.toString();
|
||||||
|
mPutMethod.addRequestHeader(OC_CHUNK_X_OC_MTIME_HEADER, timeStamp);
|
||||||
|
|
||||||
((ChunkFromFileChannelRequestEntity) mEntity).setOffset(offset);
|
((ChunkFromFileChannelRequestEntity) mEntity).setOffset(offset);
|
||||||
mPutMethod.setRequestEntity(mEntity);
|
mPutMethod.setRequestEntity(mEntity);
|
||||||
if (mCancellationRequested.get()) {
|
if (mCancellationRequested.get()) {
|
||||||
@ -115,6 +123,9 @@ public class ChunkedUploadRemoteFileOperation extends UploadRemoteFileOperation
|
|||||||
|
|
||||||
status = client.executeMethod(mPutMethod);
|
status = client.executeMethod(mPutMethod);
|
||||||
|
|
||||||
|
// DELETE NEXT LINE
|
||||||
|
Header[] headers = mPutMethod.getResponseHeaders();
|
||||||
|
|
||||||
if (status == 400) {
|
if (status == 400) {
|
||||||
InvalidCharacterExceptionParser xmlParser =
|
InvalidCharacterExceptionParser xmlParser =
|
||||||
new InvalidCharacterExceptionParser();
|
new InvalidCharacterExceptionParser();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user