我尝试执行的任务是下载特定用户的文件,名为" UserNo123.db"例如(不是纯文本文件),它位于私人目录中。
Android应用程序应根据使用该应用程序的用户传递所需文件的名称,然后下载该文件并将其保存在设备存储中的某个位置。
用户ID - > Android应用程序将ID发送到PHP脚本 - > PHP脚本使用ID来获取文件 - >将其发送回应用 - >应用程序收到正确的文件并将其保存在本地目录
我对php知之甚少,所以如果我遇到一些基本错误,我会道歉。
String path ="http://LOCALHOST/testdownload.php";
URL u = null;
try {
u = new URL(path);
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.connect();
InputStream in = c.getInputStream();
final ByteArrayOutputStream bo = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
in.read(buffer); // Read from Buffer.
bo.write(buffer); // Write Into Buffer.
runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d("READING",bo.toString());
try {
bo.close();
} catch (IOException e) {
e.printStackTrace();
}
}
});
PHP文件:
<?php
$attachment_location = "databases/test.txt";
if (file_exists($attachment_location)) {
header($_SERVER["SERVER_PROTOCOL"] . " 200 OK");
header("Cache-Control: public"); // needed for i.e.
header("Content-Type: application/txt");
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($attachment_location) . "\"");
header("Content-Length:".filesize($attachment_location));
readfile($attachment_location);
die();
} else {
die("Error: File not found.");
}
?>
这是我下载文件的原因,虽然出于某些原因,在尝试阅读文本文件时,它给了我额外的字符,但至少现在没有错误。
现在,据我所知,我希望我的请求方法是&#34; POST&#34;所以我可以发送所需的查询(用户的ID),如何在获取文件时这样做呢?
谢谢