通过PHP将用户的文件下载到Android设备

时间:2015-12-17 09:49:03

标签: php android download server

我尝试执行的任务是下载特定用户的文件,名为" 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),如何在获取文件时这样做呢?

谢谢

0 个答案:

没有答案