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、图片下载接口的更多相关文章

  1. 给安卓端调用的短信发送接口demo

    package com.js.ai.modules.pointwall.action; import java.io.IOException; import java.util.HashMap; im ...

  2. 安卓端调用h5界面js方法和ios端调用h5界面js方法

      备注:本人为h5开发人员,不懂安卓和ios,这是开发小伙伴对接联调的主代码. 1.iOS端调用h5界面js方法:     2.安卓端调用h5界面js方法: @Override    protect ...

  3. 如何搭建一个WEB服务器项目(三)—— 实现安卓端联网登录

    安卓端调用服务器登录函数进行验证登录 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出错误,分享宝贵经验 ...

  4. 如何搭建一个WEB服务器项目(四)—— 实现安卓端图片加载

    使用Glide安卓图片加载库 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出错误,分享宝贵经验.先谢谢 ...

  5. 杭州蓝松科技推出的安卓端的USB转串口调试助手, 欢迎下载使用

    杭州蓝松科技推出的安卓端的USB转串口调试助手, 欢迎下载使用 下载地址:http://files.cnblogs.com/guobaPlayer/%E8%93%9D%E6%9D%BEUSB%E4%B ...

  6. 微信开发在Pc端调用公众号粉丝发送过来的图片素材

    因为项目要在PC端搞一个微信墙功能,就是把粉丝发送过来的上墙内容给展示出来,但因为微信对微信素材进行了防盗链加密处理,所以在非微信页面上直接引用在微信服务器上的图片的链接是无法显示的,只会显示一张微信 ...

  7. TML5如何在移动网页端调用手机图片或者camera

    TML5如何在移动网页端调用手机图片或者camera可以参考这篇文章: 如果你开始基于iOS系统(ios6 above) 的web应用,可以考虑这段代码: 点击按钮,会调用你的摄像头相册 附源码文件: ...

  8. vue实现PC端调用摄像头拍照人脸录入、移动端调用手机前置摄像头人脸录入、及图片旋转矫正、压缩上传base64格式/文件格式

    进入正题 1. PC端调用摄像头拍照上传base64格式到后台,这个没什么花里胡哨的骚操作,直接看代码 (canvas + video) <template> <div> &l ...

  9. Unity3d在安卓android的更新(APK覆盖)

    其实这并没什么技术难点,也不是完美的热更新方案,只能说是退而求其次的一个方法. 起因主要是因为公司几个U3D项目在立项之初都没有能做好热更新的规化,导致现在要去做U3D的热更新非常难,并且项目已处于中 ...

随机推荐

  1. Java中使用Log的方法

    一.java自带log:java.util.logging.Logger使用三步曲 public class HelloLogWorld { private static String name = ...

  2. Linux命令详解-ls

    Ls(list)命令是linux下最常用的命令.ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单.通过ls 命令不仅可以查 ...

  3. log4j文件的配置

    public class TestLog4j { /** * 级别从大到小 * fatal * error * warn * info * debug * trace * * off:不打印任何信息! ...

  4. 理解java异常处理机制

    1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单.听话. ...

  5. 专业工具软件PCB板打印说明

    专业工具软件PCB板打印说明 请注意PCB板打印不要直接截图,如下方式是不正确的: 这样在打印为黑白图片时,元器件之间的连线无法看清. 应采用如下模式: ~End~

  6. iOS开发之谈谈App应用的架构搭建(推荐给大家看)

    1.iOS应用架构谈 开篇: 2.iOS应用架构谈 view层的组织和调用方案: 3.iOS应用架构谈 网络层设计方案: 4.iOS应用架构谈 本地持久化方案及动态部署: 5.iOS应用架构谈 组件化 ...

  7. Leetcode 999. Available Captures for Rook

    class Solution: def numRookCaptures(self, board: List[List[str]]) -> int: rook = [0, 0] ans = 0 f ...

  8. 1080. MOOC期终成绩 (25)

    对于在中国大学MOOC(http://www.icourse163.org/)学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分的在线编程作业分,然后总评获得不少于60分(满 ...

  9. NSArray四种遍历方法

  10. UGUI 分页渐变居中效果

    代码相当冗长,仅作自己记录 在此分页上修改的https://blog.csdn.net/qinyuanpei/article/details/49781133 using UnityEngine;us ...