Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


Example for dragging files from the desktop to any CPView in a Cappuccino app running in a browser.

Subscribe to updates I use deepDropUpload

Statistics on deepDropUpload

Number of watchers on Github 62
Number of open issues 1
Average time to close an issue 4 days
Main language Objective-J
Open pull requests 0+
Closed pull requests 0+
Last commit over 9 years ago
Repo Created about 10 years ago
Repo Last Updated over 2 years ago
Size 1.11 MB
Homepage http://davidcann....
Organization / Authordavidcann
Page Updated
Do you use deepDropUpload? Leave a review!
View deepDropUpload activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating deepDropUpload for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

Deep Drop Upload


These classes allow you to turn any CPView in a Cappuccino app into a file upload drop zone. It supports multiple files dropped at once. It works in Safari and Chrome. Firefox support is possible, but hasn't been added.

The most useful classes are:

  • DCFileDropController.j
  • DCFileUploadManager.j
  • DCFileUpload.j


Import these classes:

@import "DCFileDropController.j"
@import "DCFileUploadManager.j"

Apply a DCFileDropController to any CPView:

var fileDropUploadController = [[DCFileDropController alloc] 
    uploadURL:[CPURL URLWithString:@"upload.php"] 
    uploadManager:[DCFileUploadManager sharedManager]];

If you want to change visual state of the view, you can do that with this dropDelegate method:

- (void)fileDropUploadController:(DCFileDropController)theController setState:(BOOL)visible {
    if (visible) {
        [theController.view setBackgroundColor:[CPColor colorWithRed:0.0 green:0.0 blue:1.0 alpha:0.2]];
    } else {
        [theController.view setBackgroundColor:[CPColor clearColor]];

If you want to display progress, you can set the DCFileUploadManager delegate:

[[DCFileUploadManager sharedManager] setDelegate:uploadsPanel];

And process it with this method:

- (void)fileUploadManagerDidChange:(DCFileUploadManager)theManager {
    var fileUploads = [theManager fileUploads];


This technique is based on code from CSS Ninja.


MIT License

deepDropUpload open issues Ask a question     (View All Issues)
  • about 9 years Error typing in DCFileDropController.j
deepDropUpload list of languages used
Other projects in Objective-J