cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
Tell us what you want to see on the Community here!
Close

Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Dropbox multiple file upload API hanging at the end?

Highlighted

Dropbox multiple file upload API hanging at the end?

Explorer | Level 4

Hello, 

I am working on API integration on a website, we need to upload multiple files at once. I am not the programmer and have limited knowledge of the mather. I am working with a fourign company on developing this. I just want to check with you guys since I have a weird issue. When we select multiple files to upload, it starts uploading but there are no files in the dropbox... And when the upload is nearly complete (or that is at least what the progress bar shows) it stops on 98% and hands there. At that point one by one the files are placed in the dropbox, and after they all apear there is the upload complete and it goes to 100%. 

It is weird since it seems like the files were uploaded SOMEWHERE and than moved to dropbox at 98%. The strangest part is it is not uploading to the server and than reuploading to the dropbox, I checked that.. Does dropbox have a backend place where the files are stored and than moved once all are uploaded? Or is it just not working as intended?

Sorry for the lack of technical details about it, I will get them upon request.

Thanks for the help!

1 Accepted Solution

Accepted Solutions
Highlighted

Re: Dropbox multiple file upload API hanging at the end?

Dropboxer

@GeekDesign Thanks for sharing this code. Unfortunately however, it appears that some of the actual Dropbox API calling code is hidden in methods that aren't defined in this snippet (e.g., check_dropbox_file, upload_dropbox_file, check_dropbox_folder, and create_dropbox_folder), so it's harder to say exactly what it's doing.

Likewise, I don't see any reference to a progress bar here, so I can't say what exactly is driving it or when.

Please have your developers review their code and let us know what exactly isn't working as expected (if anything) so we can offer some guidance. Thanks!

View solution in original post

7 Replies 7
Highlighted

Re: Dropbox multiple file upload API hanging at the end?

Dropboxer

Unfortunately it's difficult to reason about what is happening here without more specific information/code. Can you or your development company inspect the code driving the progress meter, and follow up here with any other details or code you can share if something isn't working as expected? Thanks in advance! 

Highlighted

Re: Dropbox multiple file upload API hanging at the end?

Explorer | Level 4

Hello, Greg, sorry for the late responce, took some time to get the code:

 public function upload_image() {
        check_login('after_login', 2);
        if ($this->input->post()) {
            $project_id = $this->input->post('project_id');
            $find_project = $this->ProjectModel->get_project_details_by_id($project_id);
            if (empty($find_project)) {
                echo 'not_found';
                exit;
            }
            $project_date = $find_project[0]['created'];
            $product_id = $this->input->post('product_id');
            $project_products_id = $this->input->post('project_products_id');
            $product_details = $this->ProductModel->find_product($product_id);
            $product_uploads = $this->ProductModel->get_product_logos_for_user_product($this->session->userdata('id'), $product_id);
            $file_data = $this->input->post('file_data');
            $file_name = $this->input->post('file_name');
            $attachment_type = $this->input->post('attachment_type');
            $type = explode('.', $file_name);
//            $image_name = $type[0] . '_' . date('Ymdhis') . '_' . rand(111, 999) . '.' . $type[1];
            $path_str = trim($find_project[0]['storage_name']) . "/raw material/" . $attachment_type;
            $dropox_uploadPath = create_dropbox_path($project_date, $path_str);
            $dropbox_common_file_path = create_dropbox_path($project_date, trim($find_project[0]['storage_name']) . "/raw material");
            if (isset($_FILES['file_data'])) {
                $headers = array('Authorization: Bearer ' . $this->session->userdata('drop_box_api'), 'Content-Type: application/json');
                foreach ($product_uploads as $upload_id => $upload_data):
                    $dropox_exist = check_dropbox_file($headers, $dropbox_common_file_path . '/' . basename($upload_data['path']));
                    if (isset($dropox_exist->error)) {
                        $upload_headers = array('Authorization: Bearer ' . $this->session->userdata('drop_box_api'),
                            'Content-Type: application/octet-stream',
                            'Dropbox-API-Arg: ' .
                            json_encode(
                                    array(
                                        "path" => $dropbox_common_file_path . '/' . basename($upload_data['path']),
                                        "mode" => "add",
                                        "autorename" => true,
                                        "mute" => false,
                                        "strict_conflict" => false
                                    )
                            )
                        );
                        $new_upload = upload_dropbox_file($upload_headers, './assets/images/product_logos_clients/' . $product_uploads[0]['path']);
                    }
                endforeach;
                $folder_name = $dropox_uploadPath;
                //Chek if folder exist in drop box
                $find_folder = check_dropbox_folder($headers, $folder_name);
                if (isset($find_folder->error)) {
                    //Create folder in drop box if not exist
                    $my_folder_create = create_dropbox_folder($headers, $folder_name);
                    if (isset($my_folder_create->error)) {
                        echo 'fail';
                        exit;
                    }
                }
                foreach ($_FILES['file_data']['name'] as $key => $filename) {
                    $image_name_upload = $filename;
                    $tmp = $_FILES['file_data']['tmp_name'][$key];
                    $headers = array('Authorization: Bearer ' . $this->session->userdata('drop_box_api'),
                        'Content-Type: application/octet-stream',
                        'Dropbox-API-Arg: ' .
                        json_encode(
                                array(
                                    "path" => $folder_name . '/' . basename($image_name_upload),
                                    "mode" => "add",
                                    "autorename" => true,
                                    "mute" => false,
                                    "strict_conflict" => false
                                )
                        )
                    );
                    //Upload file to dropbox
                    $uploaded_image = upload_dropbox_file($headers, $tmp);
                    if (isset($uploaded_image->error)) {
                        echo 'fail';
                        exit;
                    }
                    $store_attached['product_id'] = $product_id;
                    $store_attached['project_id'] = $project_id;
                    $store_attached['project_products_id'] = $project_products_id;
                    if ($this->input->post('project_products_id') && $this->input->post('project_products_id') != '' && $this->input->post('project_products_id') != 0) {
                        $store_attached['project_products_id'] = $this->input->post('project_products_id');
                    }
                    $store_attached['dropbox_path'] = $uploaded_image;
                    $store_attached['is_rawmaterial'] = 0;
                    $save_attachment = $this->ProjectModel->save_attachment($store_attached);
                    if (!$save_attachment) {
                        echo 'fail';
                    } else {
                        $history_data = array();
                        $history_data['operation'] = 'uploaded_raw';
                        $history_data['project_id'] = $product_id;
                        $history_data['product_id'] = $project_id;
                        $history_data['by_user'] = $this->session->userdata('id');
                        $add_history = $this->ProjectModel->save_history($history_data);
                        echo 'success';
                    }
                }
            }
        }
        exit;
    }

The basic idea was for fotographers to upload via web, and the files would be placed in our dropbox automatically. So they would create the address of the house they shot, and pick what they shot (photos, 360 photos or something else) and they would get a corresponding field to upload those photos. 

Highlighted

Re: Dropbox multiple file upload API hanging at the end?

New member | Level 2
Jeg spillere over om man kan lasagøre hvis en har Block en om kan komme udenom den
Highlighted

Re: Dropbox multiple file upload API hanging at the end?

Explorer | Level 4

I am sorry, but what?

Highlighted

Re: Dropbox multiple file upload API hanging at the end?

Dropboxer

@Ford It looks like your message isn't related to the thread here. If you're looking for Dropbox support, please visit this page:

https://www.dropbox.com/support

Highlighted

Re: Dropbox multiple file upload API hanging at the end?

Dropboxer

@GeekDesign Thanks for sharing this code. Unfortunately however, it appears that some of the actual Dropbox API calling code is hidden in methods that aren't defined in this snippet (e.g., check_dropbox_file, upload_dropbox_file, check_dropbox_folder, and create_dropbox_folder), so it's harder to say exactly what it's doing.

Likewise, I don't see any reference to a progress bar here, so I can't say what exactly is driving it or when.

Please have your developers review their code and let us know what exactly isn't working as expected (if anything) so we can offer some guidance. Thanks!

View solution in original post

Highlighted

Re: Dropbox multiple file upload API hanging at the end?

Explorer | Level 4

Thanks, I will check it up with them.

 

Thanks a lot.

Work Smarter with Dropbox

The way we work is changing. Share and discover new ways to work smarter with Dropbox in our community.

Sound good? Let's get started.
Who's talking

Top contributors to this post

What do Dropbox user levels mean?
Need more support?