mirror of
				https://github.com/owncloud/android-library.git
				synced 2025-10-31 10:27:45 +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