We Want to Hear From You! What Do You Want to See on the Community? Tell us here!

Forum Discussion

kmsbs's avatar
kmsbs
Explorer | Level 4
8 years ago
Solved

My uploaded files on Dropbox are 0 bytes/ empty.

I have an app,In this app we are using dropbox v2 for upload or download  a file.

I uplaoded a file but it shown as a empty file and 0 byte.

  • kmsbs In your code, you're actually calling `uploadAndFinish` twice; once on its own, and then again inside your `Log.e` call. When you call the second time, the `inputStream` is consumed, so you end up uploading a zero byte file. Update your code to only do the upload once.

7 Replies

  • Jane's avatar
    Jane
    Icon for Dropbox Staff rankDropbox Staff
    8 years ago
    Hey kmsbs, thanks for getting in touch with us on the Dropbox Community! 
     
    As I’d like to help you on the issue you’ve experienced as much as possible, can you clarify whether you’re uploading your file using the web Uploader, your mobile, through your desktop or if you’ve created your own app that’s uploading your files to the Dropbox folder? 
     
    Once I have a bit more info, I’ll make sure to send you the most relevant next steps here. Thanks again & I’ll be awaiting your next post on this discussion! 
  • kmsbs's avatar
    kmsbs
    Explorer | Level 4
    8 years ago

    this is my code :

     

     

    public class UploadTask extends AsyncTask {
    private DbxClientV2 dbxClient;
    private File file;
    @SuppressLint("StaticFieldLeak")
    private Context context;
    ProgressDialog dialog;

    UploadTask(DbxClientV2 dbxClient, File file, Context context) {
    this.dbxClient = dbxClient;
    this.file = file;
    this.context = context;
    }

    @Override
    protected Object doInBackground(Object[] params) {
    try {
    // Log.e("async read",ReadFile(file));
    InputStream inputStream = new FileInputStream(file);
    dbxClient.files().uploadBuilder("/" +file.getName()) //Path in the user's Dropbox to save the file.
    .withMode(WriteMode.OVERWRITE) //always overwrite existing file
    .uploadAndFinish(inputStream);
    Log.e("Upoad", "" + dbxClient.files().uploadBuilder("/" + file.getName()) //Path in the user's Dropbox to save the file.
    .withMode(WriteMode.OVERWRITE) //always overwrite existing file
    .uploadAndFinish(inputStream));
    } catch (DbxException e) {
    e.printStackTrace();

    } catch (IOException e) {
    e.printStackTrace();
    }
    return null;

    }

    @Override
    protected void onPostExecute(Object o) {
    super.onPostExecute(o);
    DownloadActivity.dialog.dismiss();
    Toast.makeText(context, "File uploaded successfully", Toast.LENGTH_SHORT).show();
    Intent intent = new Intent(context, LoginActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent);

    }

    public static String ReadFile(File file){
    String line = null;

    try {
    FileInputStream fileInputStream = new FileInputStream (file);
    InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
    StringBuilder stringBuilder = new StringBuilder();

    while ( (line = bufferedReader.readLine()) != null )
    {
    stringBuilder.append(line + System.getProperty("line.separator"));
    }
    fileInputStream.close();
    line = stringBuilder.toString();

    bufferedReader.close();
    }
    catch(FileNotFoundException ex) {
    Log.d("FileNotFoundException", ex.getMessage());
    }
    catch(IOException ex) {
    Log.d("IOException", ex.getMessage());
    }
    return line;
    }
    }
  • kmsbs's avatar
    kmsbs
    Explorer | Level 4
    8 years ago

    File data : 

     

    [{"Working-hours":[{"User-id":"1","User-name":"user1","Client-id":"1","Client-name":"test1","Project-id":"1","Project-name":"name1","Job-id":"1","Job-name":"job1","Start-hour":"7","End-hour":"18","Work-date":"30-04-2018","Total-Working-hours":"8-hours","Edit-time":"19.00-30-04-2018","material-name":"material1","material-date":"30-04-2018","Notes":"note1"},{"User-id":"2","User-name":"user2","Client-id":"2","Client-name":"test2","Project-id":"2","Project-name":"name2","Job-id":"2","Job-name":"job2","Start-hour":"7","End-hour":"18","Work-date":"30-04-2018","Total-Working-hours":"8-hours","Edit-time":"19.00-30-04-2018","material-name":"material2","material-date":"30-04-2018","Notes":"note2"},{"User-id":"3","User-name":"user3","Client-id":"3","Client-name":"test3","Project-id":"3","Project-name":"name3","Job-id":"3","Job-name":"job3","Start-hour":"7","End-hour":"18","Work-date":"30-04-2018","Total-Working-hours":"8-hours","Edit-time":"19.00-30-04-2018","material-name":"material3","material-date":"30-04-2018","Notes":"note3"}],"Used-materials":[{"User-id":"1","User-name":"user1","Client-id":"1","Client-name":"test1","Project-id":"1","Project-name":"name1","Material-id":"1","Material-name":"material1","Date":"04-05-2018"},{"User-id":"2","User-name":"user2","Client-id":"1","Client-name":"test2","Project-id":"2","Project-name":"name2","Material-id":"1","Material-name":"material2","Date":"04-05-2018"},{"User-id":"3","User-name":"user3","Client-id":"3","Client-name":"test3","Project-id":"3","Project-name":"name3","Material-id":"3","Material-name":"material3","Date":"04-05-2018"}]}]

  • Jane's avatar
    Jane
    Icon for Dropbox Staff rankDropbox Staff
    8 years ago

    Hey kmsbs, I've moved your thread to the API section, as this will need to be reviewed by my colleagues here. 

     

    Thanks for reaching out to us & enjoy the rest of your day! 

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    8 years ago

    kmsbs In your code, you're actually calling `uploadAndFinish` twice; once on its own, and then again inside your `Log.e` call. When you call the second time, the `inputStream` is consumed, so you end up uploading a zero byte file. Update your code to only do the upload once.

About Discuss Dropbox Developer & API

Node avatar for Discuss Dropbox Developer & API
Make connections with other developers814 PostsLatest Activity: 10 hours ago
275 Following

The Dropbox Community team is active from Monday to Friday. We try to respond to you as soon as we can, usually within 2 hours.

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!