给安卓端调用的apk、图片下载接口
package com.js.ai.modules.pointwall.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.js.ai.common.utils.StringUtils;
import com.js.ai.common.web.BaseController;
/**
*
* @ClassName: DownImgAction2
* @Description: 客户端图片下载接口
* @author:
* @date:
*/
@Controller
@RequestMapping(value = "${adminPath}/client")
public class DownImgAction2 extends BaseController {
private static Logger logger = Logger.getLogger(DownImgAction2.class);
@RequestMapping(value = "downImg")
@ResponseBody
public void downImg(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
response.setContentType("image/*");
HashMap<String, Object> map=new HashMap<String,Object>();
String imgUrl = request.getParameter("imageUrl");//获取客户端发送的图片下载路径
if(StringUtils.isNotBlank(imgUrl)){
String rootPath = request.getSession().getServletContext().getRealPath(File.separator);
File file = new File(rootPath + imgUrl);
if (file.isFile()) {//文件存在
System.out.println(rootPath + imgUrl);
FileInputStream inputStream = new FileInputStream(file);
OutputStream outputStream = response.getOutputStream();
try {
int count = 0;
byte[] buffer = new byte[1024];
while ((count = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, count);
}
outputStream.flush();
} catch (IOException e) {
e.printStackTrace();
}
finally {
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}else {
logger.info("图片下载路径不存在!");
map.put("error", "图片下载路径不存在!");
}
}
}
package com.js.ai.modules.pointwall.action; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.HashMap; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.apache.fop.cli.Main;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import com.js.ai.common.utils.StringUtils;
import com.js.ai.common.web.BaseController;
import com.js.ai.modules.pointwall.entity.PointwallSystemVersons;
import com.js.ai.modules.pointwall.service.PointwallSystemVersonsService;
import com.js.ai.modules.pointwall.util.JsonHandle; /**
*
* @ClassName: ApkDownloadAction
* @Description: 客户端Apk下载接口
* @author:
* @date:
*/
@Controller
@RequestMapping(value = "${adminPath}/client")
public class ApkDownloadAction2 extends BaseController {
private static Logger logger = Logger.getLogger(ApkDownloadAction2.class);
/**
*
* @Title: apkDownload
* @Description: TODO 更新最新版本
* @param request
* @param response
* @throws IOException
* @return: void
*/
@RequestMapping(value = "apkDownload")
@ResponseBody
public void apkDownload(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
HashMap<String, Object> map=new HashMap<String,Object>();
String versionsUrl =request.getParameter("versionsUrl");//获取客户端发送的版本路径
if(StringUtils.isNotBlank(versionsUrl)){
String rootPath=request.getSession().getServletContext().getRealPath(File.separator);
File file=new File(rootPath+versionsUrl);
if(file.isFile()){//文件存在
System.out.println(rootPath + versionsUrl);
FileInputStream inputStream = new FileInputStream(file);
OutputStream outputStream = response.getOutputStream();
try {
int count = 0;
byte[] buffer = new byte[1024];
while ((count = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, count);
}
outputStream.flush();
} catch (IOException e) {
e.printStackTrace();
}
finally {
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}else {
logger.info("版本路径不存在!");
map.put("error", "版本路径不存在!");
}
}
}
给安卓端调用的apk、图片下载接口的更多相关文章
- 给安卓端调用的短信发送接口demo
		
package com.js.ai.modules.pointwall.action; import java.io.IOException; import java.util.HashMap; im ...
 - 安卓端调用h5界面js方法和ios端调用h5界面js方法
		
备注:本人为h5开发人员,不懂安卓和ios,这是开发小伙伴对接联调的主代码. 1.iOS端调用h5界面js方法: 2.安卓端调用h5界面js方法: @Override protect ...
 - 如何搭建一个WEB服务器项目(三)—— 实现安卓端联网登录
		
安卓端调用服务器登录函数进行验证登录 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出错误,分享宝贵经验 ...
 - 如何搭建一个WEB服务器项目(四)—— 实现安卓端图片加载
		
使用Glide安卓图片加载库 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出错误,分享宝贵经验.先谢谢 ...
 - 杭州蓝松科技推出的安卓端的USB转串口调试助手, 欢迎下载使用
		
杭州蓝松科技推出的安卓端的USB转串口调试助手, 欢迎下载使用 下载地址:http://files.cnblogs.com/guobaPlayer/%E8%93%9D%E6%9D%BEUSB%E4%B ...
 - 微信开发在Pc端调用公众号粉丝发送过来的图片素材
		
因为项目要在PC端搞一个微信墙功能,就是把粉丝发送过来的上墙内容给展示出来,但因为微信对微信素材进行了防盗链加密处理,所以在非微信页面上直接引用在微信服务器上的图片的链接是无法显示的,只会显示一张微信 ...
 - TML5如何在移动网页端调用手机图片或者camera
		
TML5如何在移动网页端调用手机图片或者camera可以参考这篇文章: 如果你开始基于iOS系统(ios6 above) 的web应用,可以考虑这段代码: 点击按钮,会调用你的摄像头相册 附源码文件: ...
 - vue实现PC端调用摄像头拍照人脸录入、移动端调用手机前置摄像头人脸录入、及图片旋转矫正、压缩上传base64格式/文件格式
		
进入正题 1. PC端调用摄像头拍照上传base64格式到后台,这个没什么花里胡哨的骚操作,直接看代码 (canvas + video) <template> <div> &l ...
 - Unity3d在安卓android的更新(APK覆盖)
		
其实这并没什么技术难点,也不是完美的热更新方案,只能说是退而求其次的一个方法. 起因主要是因为公司几个U3D项目在立项之初都没有能做好热更新的规化,导致现在要去做U3D的热更新非常难,并且项目已处于中 ...
 
随机推荐
- .NET、C#和ASP.NET三者之间的区别与联系
			
.NET.C#和ASP.NET三者之间的区别与联系 1..net(dot net) .net是一个平台,抽象的平台概念. 实现形式是库:①定义了基本的类型(通用类型系统CTS,common type ...
 - Java 子类实例化对象的过程
			
子类实例化是否会实例化父类? 不会.父类在子类实例化过程中是并没有被实例化,java中new子类没有实例化父类,只是调用父类的构造方法初始化了,子类从父类继承来的属性,这个调用是子类的对象调用的父类的 ...
 - spring4x,暂时停更
			
spring4x,暂时停更 鄙人愚笨,没有spring基础,直接上了spring4x,发现无法理解(另外spring4x实战课本演示不详,本人学识有限),现从spring3开始.
 - poj3517约瑟夫问题
			
直接套公式+ 假设除去第k个人. 0, 1, 2, 3, ..., k-2, k-1, k, ..., n-1 //original sequence (1) 0, 1, 2, 3, ..., k-2 ...
 - java 数据库索引的注意事项
			
索引缺点 1.虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行insert.update和delete.因为更新表时,不仅要保存数据,还要保存一下索引文件.2.建立索引会占用磁盘空间的 ...
 - python迭代器与生成器(二)
			
一.什么是迭代? 迭代通俗的讲就是一个遍历重复的过程. 维基百科中 迭代(Iteration) 的一个通用概念是:重复某个过程的行为,这个过程中的每次重复称为一次迭代.具体对应到Python编程中 ...
 - 019对象——对象 method_exists property_exists instanceof
			
<?php /** * 19 对象 method_exists property_exists instanceof */ //method_exists() 判断方法是否存在,第一个参数对象或 ...
 - New Concept English three (44)
			
25w/m 32errors People travelling long distances frequently have to decide whether they would prefer ...
 - linux时间管理 之 jiffies
			
1.jiffies 又称时钟滴答,是一个全局变量,它的值在系统引导的时候初始化为0,在时钟中断初始化完成后,每次时钟中断发生,在时钟中断处理例程中都会将jiffies的值 +1. jiffies_64 ...
 - 一个 token 控件
			
用于以分词形式显示某个对象的多个标签,比如: 用法 将 TagsView.h/.m 文件拷贝到你的项目文件夹,在需要用到该控件的地方导入 TagsView.h 头文件. IB 中的工作 拖一个 UIV ...