package com.wtoip.h5.interfaces.download;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.wtoip.h5.eo.EOWtoipAppVersion;
import com.wtoip.h5.ro.ROWtoipAppVersionUtil;
@Controller
public class DownLoadController {
/**
* 下载apk
*
* @return
*/
@RequestMapping(value = { "downLoad", "downLoad/" }, produces = { "application/json;charset=UTF-8" })
@ResponseBody
public void test(HttpServletRequest request, HttpServletResponse response) {
System.out.println("开始下载文件");
// response.setContentType("application/ms-word");
// 0:Android 用户 1:ios用户 2android商家 3ios商家
String type = request.getParameter("type");
// D:\lilong\main_new\h5\
String projectPath = request.getSession().getServletContext().getRealPath("/");
projectPath = projectPath.replaceAll("h5", "admin");
System.out.println("修改之后的projectPath:" + projectPath);
try {
EOWtoipAppVersion wtoipAppVersionSelect = new EOWtoipAppVersion();
wtoipAppVersionSelect.setDelete_flag("0");//删除标志
wtoipAppVersionSelect.setApp_conf_flag("1");//激活标志
wtoipAppVersionSelect.setVersion_type(type);
List<EOWtoipAppVersion> wtoipAppVersions = ROWtoipAppVersionUtil.selectByExample(wtoipAppVersionSelect);
if (wtoipAppVersions.size() != 1) {
System.out.println("没有所需要下载的文件");
return;
}
String relativeFilePath = wtoipAppVersions.get(0).getVersion_url();// 文件在服务器上面的相对路径的名字(+文件名字)
String filefix = relativeFilePath.substring(relativeFilePath.lastIndexOf("."));// 文件的后缀名字
String downLoadFileName = null;
if (type.equals("0")||type.equals("1")) {
// 用户版
downLoadFileName = "huiju-release"+filefix;
} else if (type.equals("2")||type.equals("3")) {
// 商家版
downLoadFileName = "huijumerchant-release"+filefix;
}
response.setHeader("Content-disposition", "attachment; filename="+downLoadFileName);
URL url = new URL(projectPath+relativeFilePath);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
DataInputStream input = new DataInputStream(conn.getInputStream());
DataOutputStream output = new DataOutputStream(response.getOutputStream());
byte[] buffer = new byte[1024 * 8];
int count = 0;
while ((count = input.read(buffer)) > 0) {
output.write(buffer, 0, count);
}
output.close();
input.close();
} catch (Exception e) {
System.out.println("apk下载失败,错误信息" + e);
}
}
}
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.wtoip.h5.eo.EOWtoipAppVersion;
import com.wtoip.h5.ro.ROWtoipAppVersionUtil;
@Controller
public class DownLoadController {
/**
* 下载apk
*
* @return
*/
@RequestMapping(value = { "downLoad", "downLoad/" }, produces = { "application/json;charset=UTF-8" })
@ResponseBody
public void test(HttpServletRequest request, HttpServletResponse response) {
System.out.println("开始下载文件");
// response.setContentType("application/ms-word");
// 0:Android 用户 1:ios用户 2android商家 3ios商家
String type = request.getParameter("type");
// D:\lilong\main_new\h5\
String projectPath = request.getSession().getServletContext().getRealPath("/");
projectPath = projectPath.replaceAll("h5", "admin");
System.out.println("修改之后的projectPath:" + projectPath);
try {
EOWtoipAppVersion wtoipAppVersionSelect = new EOWtoipAppVersion();
wtoipAppVersionSelect.setDelete_flag("0");//删除标志
wtoipAppVersionSelect.setApp_conf_flag("1");//激活标志
wtoipAppVersionSelect.setVersion_type(type);
List<EOWtoipAppVersion> wtoipAppVersions = ROWtoipAppVersionUtil.selectByExample(wtoipAppVersionSelect);
if (wtoipAppVersions.size() != 1) {
System.out.println("没有所需要下载的文件");
return;
}
String relativeFilePath = wtoipAppVersions.get(0).getVersion_url();// 文件在服务器上面的相对路径的名字(+文件名字)
String filefix = relativeFilePath.substring(relativeFilePath.lastIndexOf("."));// 文件的后缀名字
String downLoadFileName = null;
if (type.equals("0")||type.equals("1")) {
// 用户版
downLoadFileName = "huiju-release"+filefix;
} else if (type.equals("2")||type.equals("3")) {
// 商家版
downLoadFileName = "huijumerchant-release"+filefix;
}
response.setHeader("Content-disposition", "attachment; filename="+downLoadFileName);
URL url = new URL(projectPath+relativeFilePath);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
DataInputStream input = new DataInputStream(conn.getInputStream());
DataOutputStream output = new DataOutputStream(response.getOutputStream());
byte[] buffer = new byte[1024 * 8];
int count = 0;
while ((count = input.read(buffer)) > 0) {
output.write(buffer, 0, count);
}
output.close();
input.close();
} catch (Exception e) {
System.out.println("apk下载失败,错误信息" + e);
}
}
}