You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
3.8 KiB
112 lines
3.8 KiB
package com.example.musicwork.freeModel;
|
|
|
|
import android.os.Environment;
|
|
import android.util.Log;
|
|
|
|
import org.apache.commons.io.IOUtils;
|
|
import org.json.JSONException;
|
|
import org.json.JSONObject;
|
|
|
|
import java.io.BufferedInputStream;
|
|
import java.io.BufferedReader;
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.FileOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.io.InputStreamReader;
|
|
import java.io.OutputStream;
|
|
import java.net.HttpURLConnection;
|
|
import java.net.MalformedURLException;
|
|
import java.net.URL;
|
|
import java.net.URLConnection;
|
|
import java.net.URLEncoder;
|
|
import java.util.HashMap;
|
|
|
|
public class FileServiceDownload {
|
|
|
|
public static boolean downloadForm(String filename) throws IOException {
|
|
//String downloadDir = Environment.getExternalStorageDirectory();
|
|
// 普通参数
|
|
//String filename="111.txt";
|
|
String urlStr = "http://42.193.97.132:8080/Manager/readfil-servlet";
|
|
MyThread_filedownload myThread = new MyThread_filedownload(filename,urlStr);
|
|
try
|
|
{
|
|
myThread.start();
|
|
myThread.join();
|
|
}
|
|
catch (InterruptedException e)
|
|
{
|
|
e.printStackTrace();
|
|
}
|
|
|
|
return myThread.getResult();
|
|
}
|
|
|
|
|
|
}
|
|
class MyThread_filedownload extends Thread {
|
|
|
|
private String urlStr;
|
|
private String filename;
|
|
private String downloadDir;
|
|
public boolean result=false;
|
|
|
|
public MyThread_filedownload(String filename, String urlStr) {
|
|
this.urlStr = urlStr;
|
|
this.filename = filename;
|
|
}
|
|
@Override
|
|
public void run() {
|
|
try {
|
|
URL url = new URL(urlStr);
|
|
URLConnection urlConnection = url.openConnection();
|
|
HttpURLConnection httpURLConnection = (HttpURLConnection) urlConnection;
|
|
httpURLConnection.setRequestMethod("POST");
|
|
httpURLConnection.setRequestProperty("Charset", "UTF-8");
|
|
String data = "filename=" + URLEncoder.encode(filename, "utf-8");//设置数据
|
|
httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");//设置响应类型
|
|
httpURLConnection.setRequestProperty("Content-Length", data.length() + "");//设置内容长度
|
|
httpURLConnection.setDoOutput(true);//允许输出
|
|
OutputStream outputStream = httpURLConnection.getOutputStream();
|
|
outputStream.write(data.getBytes("utf-8"));//写入数据
|
|
httpURLConnection.connect();
|
|
// 文件大小
|
|
int fileLength = httpURLConnection.getContentLength();
|
|
URLConnection con = url.openConnection();
|
|
InputStream bin = new BufferedInputStream(httpURLConnection.getInputStream());
|
|
BufferedReader in = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream(), "utf-8"));
|
|
|
|
Log.e("download filename:",filename);
|
|
String filepath=Environment.getExternalStorageDirectory().getPath();
|
|
File file=new File(filepath,"/Music/"+filename);
|
|
if (!file.getParentFile().exists()) {
|
|
file.getParentFile().mkdirs();
|
|
}
|
|
OutputStream out = new FileOutputStream(file);
|
|
int size = 0;
|
|
byte[] buf = new byte[1024];
|
|
while ((size = bin.read(buf)) != -1) {
|
|
out.write(buf, 0, size);
|
|
}
|
|
IOUtils.copy(bin, out);
|
|
if(file.length()!=0){
|
|
result=true;
|
|
}
|
|
bin.close();
|
|
out.close();
|
|
} catch (MalformedURLException e) {
|
|
e.printStackTrace();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
public boolean getResult() {
|
|
return result;
|
|
}
|
|
|
|
|
|
}
|
|
|