2014-12-03 93 views
-2

我想使用网络应用程序将文件上传到投递箱。但问题是Java正在询问完整的文件路径。我需要做什么?这是我的代码:如何上传文件到Dropbox?

File inputFile = new File("D://New Text Document.txt"); 
System.out.println("inputFile.getAbsoluteFile(): " + inputFile); 
FileInputStream inputStream = new FileInputStream("D://New Text Document.txt"); 

try { 
    DbxEntry.File uploadedFile = client.uploadFile("/magnum-opus.txt", 
    DbxWriteMode.add(), inputFile.length(), inputStream); 
    System.out.println("Uploaded: " + uploadedFile.toString()); 
} finally { 
    inputStream.close(); 
} 

第一行是要求文件路径;这怎么可能?

回答

0

可以使用相对路径

File inputFile = new File("working-draft.txt"); 
FileInputStream inputStream = new FileInputStream(inputFile); 
try { 
DbxEntry.File uploadedFile = client.uploadFile("/magnum-opus.txt", 
    DbxWriteMode.add(), inputFile.length(), inputStream); 
System.out.println("Uploaded: " + uploadedFile.toString()); 
} finally { 
inputStream.close(); 
} 

more details here

+0

如果我给相对路径显示错误,如文件未找到异常。 – kamesh 2014-12-03 14:35:41

0

Dropbox Java Core SDK tutorial具有下面的代码作为样品用于上传的文件:

File inputFile = new File("working-draft.txt"); 
FileInputStream inputStream = new FileInputStream(inputFile); 
try { 
    DbxEntry.File uploadedFile = client.uploadFile("/magnum-opus.txt", 
     DbxWriteMode.add(), inputFile.length(), inputStream); 
    System.out.println("Uploaded: " + uploadedFile.toString()); 
} finally { 
    inputStream.close(); 
} 

在样品上方,在第一行,“working-draft.txt”是本地文件的本地路径。这需要指向一个现有的本地文件。你的代码有“D:// New Text Document.txt”,所以你应该首先确定其中有一个文件。

在第四行中,传递给uploadFile的第一个参数“/magnum-opus.txt”是所需的远程路径,即您要将文件上传到Dropbox文件夹的位置。 API要求相对于此来引用远程路径。 uploadFile方法记录在here

+0

我同意这一点。在web应用程序中,我们没有得到它通过网络传递的文件路径。所以我只能得到文件名。如何将文件路径传递到投递箱? – kamesh 2014-12-04 04:59:44

+0

如果您引用本地路径,则uploadFile方法只需要一个InputStream来输入要上载的数据。这里的示例恰好从本地文件创建一个InputStrem,由路径引用,但是任何InputStream都可以工作。如果您指的是远程路径,那么无论您选择什么,都可以包含完整路径。例如,你可以上传到特定的文件夹,如“/Documents/Working/magnum-opus.txt”。 – Greg 2014-12-04 21:43:33