From: Bartek Przybylski Date: Sun, 27 May 2012 17:56:06 +0000 (+0200) Subject: fix fileupload from external apps X-Git-Tag: oc-android-1.4.3~371 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/70c46d8fdc00506e83e6209337255256379eeff9 fix fileupload from external apps --- diff --git a/src/eu/alefzero/owncloud/Uploader.java b/src/eu/alefzero/owncloud/Uploader.java index a5d2316d..13b2269e 100644 --- a/src/eu/alefzero/owncloud/Uploader.java +++ b/src/eu/alefzero/owncloud/Uploader.java @@ -18,6 +18,7 @@ package eu.alefzero.owncloud; import java.io.File; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.Stack; @@ -264,7 +265,10 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro } Log.d(TAG, "Uploading file to dir " + pathToUpload); - mUploadPath = pathToUpload; + mUploadPath = ""; + for (String s : pathToUpload.split("/")) + mUploadPath = "/" + URLEncoder.encode(s); + if (!mUploadPath.endsWith("/")) mUploadPath += "/"; mCreateDir = false; uploadFiles(); @@ -382,11 +386,11 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro final String display_name = c.getString(c.getColumnIndex(Media.DISPLAY_NAME)), data = c.getString(c.getColumnIndex(Media.DATA)); local[i] = data; - remote[i] = mUploadPath + "/" + display_name; + remote[i] = mUploadPath + display_name; } else if (uri.getScheme().equals("file")) { final File file = new File(Uri.decode(uri.toString()).replace(uri.getScheme() + "://", "")); local[i] = file.getAbsolutePath(); - remote[i] = mUploadPath + "/" + file.getName(); + remote[i] = mUploadPath + file.getName(); } } diff --git a/src/eu/alefzero/owncloud/files/services/FileUploader.java b/src/eu/alefzero/owncloud/files/services/FileUploader.java index c1c4d2a6..d34034d5 100644 --- a/src/eu/alefzero/owncloud/files/services/FileUploader.java +++ b/src/eu/alefzero/owncloud/files/services/FileUploader.java @@ -1,6 +1,7 @@ package eu.alefzero.owncloud.files.services; import java.io.File; +import java.net.URLDecoder; import eu.alefzero.owncloud.AccountUtils; import eu.alefzero.owncloud.R; @@ -177,7 +178,8 @@ public class FileUploader extends Service implements OnDatatransferProgressListe new_file.setModificationTimestamp(System.currentTimeMillis()); new_file.setLastSyncDate(0); new_file.setStoragePath(mLocalPaths[i]); - new_file.setParentId(storageManager.getFileByPath(mRemotePaths[i].substring(0, mRemotePaths[i].lastIndexOf('/')+1)).getFileId()); + File f = new File(mRemotePaths[i]); + new_file.setParentId(storageManager.getFileByPath(URLDecoder.decode(f.getParent().endsWith("/")?f.getParent():f.getParent()+"/")).getFileId()); storageManager.saveFile(new_file); } }