如何从xampp服务器下载文件?

时间:2014-08-04 07:51:28

标签: android

这是我从xampp server下载文件的代码。但我无法下载文件。任何人都可以修复它吗?。我的老师说使用AsyncTaskn如何使用它?它显示错误“应用程序可能正在做在其主线上做了太多工作。“

public class MainActivity extends ActionBarActivity 
{
Button b1;
String FileDownloadPath="http://192.168.1.25/dinesh/di.mp3";
String FileSavePath="com.example.music11/music";
ProgressDialog dialog=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1=(Button)findViewById(R.id.button1);
b1.setOnClickListener(new OnClickListener(){
public void onClick(View arg0)
{
dialog=ProgressDialog.show(MainActivity.this,"", "file is being download", true);
new Thread(new Runnable()
{
public void run()
{
downlaodfile(FileDownloadPath,FileSavePath);
}
}).start();
}
});
}
public void downlaodfile(String FileDownloadPath,String FileSavePath )
{
try{
File SaveFile=new File(FileSavePath);
URL U=new URL(FileDownloadPath);
URLConnection con=U.openConnection();
            int lengthofcontent=con.getContentLength();
            DataInputStream ds=new DataInputStream(U.openStream());
            byte[] buffer=new byte[lengthofcontent];
            ds.readFully(buffer);
            ds.close();
            DataOutputStream db=new DataOutputStream(new FileOutputStream(SaveFile));
            db.write(buffer);
            db.flush();
            db.close();

            hideProgressIndicator();
    }
    catch(FileNotFoundException e)
    {
        hideProgressIndicator();
    }
    catch(IOException e)
    {
        hideProgressIndicator();
    }

    catch(Exception e){

    }
}

private void hideProgressIndicator() {
    // TODO Auto-generated method stub
    runOnUiThread(new Runnable(){
        public void run()
        {
            dialog.dismiss();

        }

    });
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}


}

1 个答案:

答案 0 :(得分:0)

这是使用“OkHttp”改善网络的另一个很好的选择。

尝试使用此链接https://github.com/square/okhttp/wiki/Recipes下载文件(示例)。

对于非常快速的网络操作,这是比原生HttpClient更好的网络库。只需尝试一下。

感谢。