From: masensio Date: Tue, 28 Apr 2015 12:22:35 +0000 (+0200) Subject: Get file to upload and copy into a temporal file (Uploads#uploadFiles X-Git-Tag: test~20^2~9 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/42fde39ff1694bd618729c07a615bbb410072d82?hp=--cc Get file to upload and copy into a temporal file (Uploads#uploadFiles --- 42fde39ff1694bd618729c07a615bbb410072d82 diff --git a/src/com/owncloud/android/ui/activity/Uploader.java b/src/com/owncloud/android/ui/activity/Uploader.java index 9dc0fbf9..60b6ae5b 100644 --- a/src/com/owncloud/android/ui/activity/Uploader.java +++ b/src/com/owncloud/android/ui/activity/Uploader.java @@ -22,6 +22,12 @@ package com.owncloud.android.ui.activity; import java.io.File; +import java.io.FileDescriptor; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; @@ -45,6 +51,7 @@ import android.content.res.Resources.NotFoundException; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; +import android.os.ParcelFileDescriptor; import android.os.Parcelable; import android.preference.PreferenceManager; import android.provider.MediaStore.Audio; @@ -73,6 +80,8 @@ import com.owncloud.android.operations.CreateFolderOperation; import com.owncloud.android.ui.dialog.CreateFolderDialogFragment; import com.owncloud.android.utils.DisplayUtils; import com.owncloud.android.utils.ErrorMessageAdapter; +import com.owncloud.android.utils.FileStorageUtils; +import com.owncloud.android.utils.UriUtils; /** @@ -428,7 +437,7 @@ public class Uploader extends FileActivity for (Parcelable mStream : mStreamsToUpload) { Uri uri = (Uri) mStream; - if (uri !=null) { + if (uri != null) { if (uri.getScheme().equals("content")) { String mimeType = getContentResolver().getType(uri); @@ -436,16 +445,64 @@ public class Uploader extends FileActivity if (mimeType.contains("image")) { String[] CONTENT_PROJECTION = { Images.Media.DATA, Images.Media.DISPLAY_NAME, Images.Media.MIME_TYPE, - Images.Media.SIZE}; + Images.Media.SIZE }; Cursor c = getContentResolver().query(uri, CONTENT_PROJECTION, null, null, null); c.moveToFirst(); int index = c.getColumnIndex(Images.Media.DATA); String data = c.getString(index); + String filePath = mUploadPath + + c.getString(c.getColumnIndex(Images.Media.DISPLAY_NAME)); + String fullTempPath = FileStorageUtils.getTemporalPath(getAccount().name) + + filePath; + InputStream inputStream = null; + FileOutputStream outputStream = null; + if (data == null) { + try { + inputStream = getContentResolver().openInputStream(uri); + File cacheFile = new File(fullTempPath); + cacheFile.createNewFile(); + outputStream = new FileOutputStream(fullTempPath); + byte[] buffer = new byte[4096]; + + int count = 0; + + while ((count = inputStream.read(buffer)) > 0) { + outputStream.write(buffer, 0, count); + } + + outputStream.close(); + inputStream.close(); + + data = fullTempPath; + }catch (Exception e) { + if (inputStream != null) { + try { + inputStream.close(); + } catch (Exception e1) { + + } + } + + if (outputStream != null) { + try { + outputStream.close(); + } catch (Exception e1) { + + } + } + + if (fullTempPath != null) { + File f = new File(fullTempPath); + f.delete(); + } + } + } + local.add(data); remote.add(mUploadPath + c.getString(c.getColumnIndex(Images.Media.DISPLAY_NAME))); - + } else if (mimeType.contains("video")) { String[] CONTENT_PROJECTION = { Video.Media.DATA,