One month down in 2025: How are your resolutions coming along? Check out how to get back on track here.
Forum Discussion
AppleGG
8 years agoHelpful | Level 6
iOS Objective C. up/download URL.
I can't seem to get the right response block for these. A little Help?
Also one parameter is labeled as a URL but takes a string, which I assume is a path.
Your web page examples on file transfers are in sore need of being updated.
- Greg-DB
Dropbox Staff
It sounds like you're referring to uploadUrl and downloadUrl. The documentation there has more information, but the first parameter to each is the remote path in Dropbox (that is, the path where you want to upload to or download from, respectively.) The URL parameter is likewise the file URL to upload from or download to, respectively.
Here are some examples of what those would look like:
[[client.filesRoutes uploadUrl:@"/test.txt" inputUrl:[NSURL fileURLWithPath:@"/local/path/to/test.txt"]] setResponseBlock:^(DBFILESFileMetadata *metadata, DBFILESUploadError *uploadError, DBRequestError *error) { if (metadata) { NSLog(@"The upload completed successfully."); NSLog(@"File metadata:"); NSLog(@"%@", metadata); } else if (uploadError) { NSLog(@"Something went wrong with the upload:"); NSLog(@"%@", uploadError); } else if (error) { NSLog(@"Something went wrong with the API call:"); NSLog(@"%@", error); } }];
[[client.filesRoutes downloadUrl:@"/test.txt" overwrite:true destination:[NSURL fileURLWithPath:@"/local/path/to/test.txt"]] setResponseBlock:^(DBFILESFileMetadata *metadata, DBFILESDownloadError *downloadError, DBRequestError *error, NSURL *destination) { if (metadata) { NSLog(@"The download call completed successfully."); NSLog(@"File metadata:"); NSLog(@"%@", metadata); } else if (downloadError) { NSLog(@"Something went wrong with the download:"); NSLog(@"%@", downloadError); } else if (error) { NSLog(@"Something went wrong with the API call:"); NSLog(@"%@", error); } }];
If this isn't working for you, can you share the code that isn't working for you and the error you're getting?
- tslaninaNew member | Level 2
Hey,
Your example contains:
inputUrl:[NSURL fileURLWithPath:@"/local/path/to/test.txt"
But when you check DBFILESUserAuthRoutes, there's :
- (DBUploadTask *)uploadUrl:(NSString *)path inputUrl:(NSString *)inputUrl
So, the inputUrl argument is an NSString, not NSURL type.
Moreover, uploadUrl calls requestUpload, where the inputUrl (named as input) is converted to NSURL:
- (DBUploadTaskImpl *)requestUpload:(DBRoute *)route arg:(id<DBSerializable>)arg inputUrl:(NSString *)input {
NSURL *inputUrl = [NSURL fileURLWithPath:input];So, reasuming. Direct file path ( NSString*) should be passed to uploadUrl, not the URL.
The "inputUrl" name is also misleading (probably leftover from previous version??), should be inputPath, so
inputUrl:(NSURL *)inputUrl
or
inputPath:(NSString *)inputUrl
Would be much better.
The same problem is with other args with "Url" in name abd NSString* type.
- Greg-DB
Dropbox Staff
- Bob S.15Collaborator | Level 9
I'm getting an "unrecognized selector sent to instance" for uploadURL. Trying to update to newest SDK from the old one that supported iOS 8. Those links you posted are broken. Is uploadURL gone? What's its replacement???
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.5,949 PostsLatest Activity: 43 minutes ago
If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!