前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jersey 409

Jersey 409

作者头像
周杰伦本人
发布2023-10-12 14:32:32
1190
发布2023-10-12 14:32:32
举报
文章被收录于专栏:同步文章同步文章

Jersey 报409错误 解决方案 : 在webapp下新建upload文件夹 然后建一个file空文件 像这样:

在这里插入图片描述
在这里插入图片描述

Controller层:

代码语言:javascript
复制
package com.xiepanpan.ecps.controller;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
import com.xiepanpan.ecps.utils.ECPSUtils;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.Random;


/**
 * describe:图片上传
 *
 * @author xiepanpan
 * @date 2018/10/31
 */
@Controller
@RequestMapping("/upload")
public class EbUploadController {

    @RequestMapping("/uploadPic.do")
    public void uploadPic(HttpServletRequest request, PrintWriter printWriter) throws IOException {
        MultipartHttpServletRequest mr = (MultipartHttpServletRequest) request;
        //从表单中获取文件
        Iterator<String> iter = mr.getFileNames();
        String inputName = iter.next();
        // 获取文件
        MultipartFile multipartFile = mr.getFile(inputName);
        byte[] bytes = multipartFile.getBytes();
        //定义上传文件的文件名
        String fileName = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
        Random random = new Random();
        //文件名后三位为随机数
        for (int i=0;i<3;i++){
            fileName=fileName+random.nextInt(10);
        }
        //获得后缀名
        String originalFilename = multipartFile.getOriginalFilename();
        String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
        //相对路径保存到数据库中 绝对路径显示缩略图
        //要上传的绝对路径
        String relativePath="/upload/" + fileName + suffix;
        String realPath = ECPSUtils.readProp("upload_file_path") + relativePath;

        //创建Jersey客户端
        Client client = Client.create();
        //指定上传的绝对路径
        WebResource webResource = client.resource(realPath);
        webResource.put(bytes);
        JSONObject jsonObject = new JSONObject();
        jsonObject.accumulate("realPath",realPath);
        jsonObject.accumulate("relativePath",relativePath);
        String result = jsonObject.toString();
        printWriter.write(result);

    }

}

ECPSUtil工具类:

代码语言:javascript
复制
package com.xiepanpan.ecps.utils;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * describe:
 *
 * @author xiepanpan
 * @date 2018/11/01
 */
public class ECPSUtils {

    /**
     * 读取配置文件
     * @param key
     * @return
     */
    public static String readProp(String key) {
        InputStream inputStream = ECPSUtils.class.getClassLoader()
                .getResourceAsStream("ecps_prop.properties");
        Properties properties = new Properties();
        String value= null;
        try {
            properties.load(inputStream);
            value= properties.getProperty(key);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return value;
    }
}

配置文件:

代码语言:javascript
复制
upload_file_path=http://localhost:8092/ecps-file

参考博客: https://blog.csdn.net/saytime/article/details/51416017 这个博客写的更好 介绍的Jersey用法

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档