基于resteasy,Base64码上传文件

package com.xgt.controller.bs;

import com.xgt.bean.bs.VersionBean;
import com.xgt.common.BaseController;
import com.xgt.common.PcsResult;
import com.xgt.service.bs.VersionService;
import com.xgt.util.ConstantsUtil;
import com.xgt.util.FileUtils;
import com.xgt.util.OssUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import javax.ws.rs.FormParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * Created by Administrator on 2017/9/14.
 */
@Controller
@Path("/installationPackageServerApi")
public class InstallationPackageServerApiController extends BaseController {
    @Autowired
    private VersionService versionService;

    /**
     * 上传安装包到服务器
     * @param installationPackage
     * @param installationPackageName
     * @return
     * @throws IOException
     */
    @POST
    @Path("/uploadInstallationPackage")
    @Produces(MediaType.APPLICATION_JSON)
    public PcsResult uploadInstallationPackage(@FormParam("accessToken") String accessToken,@FormParam("installationPackage") String installationPackage
            , @FormParam("installationPackageName") String installationPackageName,@FormParam("versionName") String versionName) throws IOException {
        byte[] encodeBase64 =  FileUtils.getZip(installationPackage, installationPackageName);
        VersionBean versionBean = new VersionBean();
        versionBean.setAccessToken(accessToken);
        versionBean.setInstallationPackageName(installationPackageName);
        versionBean.setInstallationPackage(encodeBase64);
        uploadFile(versionBean);
        return newResult(true);
    }

    private void uploadFile(VersionBean version) throws FileNotFoundException {
        if(version.getInstallationPackage().length>0){
            // 上传到图片服务器
            OssUtil oss=new OssUtil(accessKeyId, accessKeySecret, endpoint,bucketName);
            //图片
            String InstallationPackageName = version.getInstallationPackageName();
            oss.putObject(ConstantsUtil.Folder_PACKAGE_PATH+ConstantsUtil.FILE_SEPARATOR
                    +InstallationPackageName, version.getInstallationPackage());
            version.setInstallationPackageName(ConstantsUtil.Folder_PACKAGE_PATH+ConstantsUtil.FILE_SEPARATOR
                    +InstallationPackageName);
            versionService.insertVersion(version);
            Integer versionId = versionService.gainVersionId(version);
            version.setVersionId(versionId);
            versionService.insertInstallationPackage(version);
        }
    }

}
时间: 2024-08-28 22:13:25

基于resteasy,Base64码上传文件的相关文章

django 基于form表单上传文件和基于ajax上传文件

一.基于form表单上传文件 1.html里是有一个input type="file" 和 'submit'的标签 2.vies.py def fileupload(request): if request.method == 'POST': print(request.POST) print(request.FILES) # from django.core.files.uploadedfile import InMemoryUploadedFile print(type(reque

HTML5+AJAX原生分块上传文件的关键参数设置

processData:false 这是jquery.ajax的一个参数.默认值为true,表示会将非字符串对象自动变成k1=v1&k2=v2的形式,例如一个数组参数{d:[1,2]},到服务端后会变成d[]=1&d[]=2的形式. 要将其设置为false后,才能上传ArrayBuffer对象,服务端直接从Request.InputStream获取原始字节流. w3school解释: processData 类型:Boolean 默认值: true.默认情况下,通过data选项传递进来的数

.NET CORE上传文件到码云仓库【搭建自己的图床】

.NET CORE上传文件到码云仓库[搭建自己的图床] 先建一个公共仓库(随意提交一个README文件或者.gitignore文件保证master分支的存在),然后到gitee的个人设置页面找到[私人令牌]菜单创建一个access_token.Gitee官方还友好的提供了基于swagger的API文档和调试页面: https://gitee.com/api/v5/swagger#/postV5ReposOwnerRepoContentsPath 搭建步骤 1.新建一个名为imagebed的仓库

通过二维码上传手机文件到服务器

Hello,大家好.这是我的第一篇博客,给大家分享下手机扫码上传图片到服务器实现手机pc同步. 1.自动生成二维码--> 可以去二维码生成工具网站获取api也可以直接用这个:http://qr.topscan.com/api.php?text= ? 注意:问号代表二维码访问的路径如果后面跟www.baidu.com就会跳转百度 2.这里写了个h5页面用于手机扫一扫上传文件跳转 <!DOCTYPE html> <html lang="en"> <hea

SFTP基于Key多进程批量并发上传文件实现案例(python)

最近在研究Paramiko,Paramiko可以非常方便的实现基于SSH协议的远程连接,可以基于 口令,也可以无口令RSA非对称密钥,亦可以实现SFTP上传下载操作,安全高效,再结合多 进程或者是多线程就可以实现并行处理,写了一个简单的SFTP基于Key多进程批量并发上传 文件的实现案例,供以后参考. 安装加密模块和Paramiko模块 下载:pycrypto-2.6.1.tar.gz paramiko-1.10.1.tar.gz 安装: tar -zxf pycrypto-2.6.1.tar.

文件上传三:base64编码上传

介绍三种上传方式: 文件上传一:伪刷新上传 文件上传二:FormData上传 文件上传三:base64编码上传 Flash的方式也玩过,不喜欢不拿来说了. 优点: 1.浏览器可以马上展示图像,不需要先上传到服务端,减少服务端的垃圾图像 2.前端可以压缩.处理后上传到服务端,减少传输过程中的等待时间和服务器压力 缺点: 1.生成编码后保存成图片,倘若不做处理,会比原来的图片容量大,具体原因,搜索关键词:Base64编码为什么会使数据量变大 2.图片越大生成的编码越多,编码越多开发者工具中查看它时卡

SpringMVC上传文件的MultipartFile源码

0.MultipartFile上传文件的具体实例如下: http://blog.csdn.net/swingpyzf/article/details/20230865 1.MultipartFile接口源码如下: public interface MultipartFile { String getName(); //获取文件原名(不包含路径) String getOriginalFilename(); //获取上传文件的类型 String getContentType(); boolean i

接口测试-Http状态码-postman上传文件

转自:https://www.cnblogs.com/jiadan/articles/8546015.html 一. 接口   接口:什么是接口呢?接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口.   系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们用的app.网址这些它在进行数据处理的时候都是通过接口来进行调用的.  

上传文件Base64格式(React)

记录一下上传文件时将文件数据转为Base64的方法 通过 FileReader对象创建一个实例,然后使用 readAsDataURL方法将数据转为Base64格式 注意: 读取过程是异步的 绑定onload事件,该事件在数据读取完成后触发 具体代码(react项目中): const reader = new window.FileReader(); reader.readAsDataURL(fileObject); reader.onload = () => { Base64Data = rea