Discuss Dropbox Developer & API
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.
Jane
Community Moderator @ Dropbox
dropbox.com/support
Did this post help you? If so please give it a Like below.
Did this post fix your issue/answer your question? If so please press the 'Accept as Best Answer' button to help others find it.
Still stuck? Ask me a question! (Questions asked in the community will likely receive an answer within 4 hours!)
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;
}
}
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"}]}]
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!
Jane
Community Moderator @ Dropbox
dropbox.com/support
Did this post help you? If so please give it a Like below.
Did this post fix your issue/answer your question? If so please press the 'Accept as Best Answer' button to help others find it.
Still stuck? Ask me a question! (Questions asked in the community will likely receive an answer within 4 hours!)
@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.
Hi there!
If you need more help you can view your support options (expected response time for a 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!