之前部署的java项目,打包war包后放入tomcat下,并配置conf下的server.xml,设置war包路径,设置是否自动解包与否等操作.

然后重启tomcat,稍等片刻,(web)java项目就能访问了.

而这次稍作调整,结合nginx的特性,同样war包,使用内置tomcat运行 ( 即 java -jar xxx.war )

使用原服务器tomcat做为程序内文件上传存储地.

上方为默认的nginx的配置文件

如果需要更改为 java项目的启动, java项目端口设定为90端口, proxy_pass里也更改为 :90 端口.

在使用linux文件存储路径时,在上传的控制层需要对应起来.

filepath.properties:

#头部图片
img.savepath=/www/server/apache-tomcat-8.5.32/webapps/ROOT/upload/images/topimg/
#新闻图片
newsimg.savepath=/www/server/apache-tomcat-8.5.32/webapps/ROOT/upload/images/newsimg/
#视频
video.savepath=/www/server/apache-tomcat-8.5.32/webapps/ROOT/upload/video/

UploadController:

package com.xxxxx.xxx.controller;

import com.alibaba.fastjson.JSONObject;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; /**
* 文件上传 controller
*/
@PropertySource(value = "classpath:filepath.properties")
@Controller
@RequestMapping("/upload")
public class UploadController { @Value("${img.savepath}")
private String imgPath;
@Value("${video.savepath}")
private String videoPath;
@Value("${newsimg.savepath}")
private String newsPath; /**
* @param fileType 文件类型
* @param fileNum 文件编号
* @param uploadFile
* @return
*/
@PostMapping("/{fileType}/{fileNum}")
@ResponseBody
public JSONObject uploadFiles(HttpServletRequest request, @PathVariable String fileType, @PathVariable Integer fileNum,
@Param("uploadFile") MultipartFile uploadFile) { //默认传入文件到tomcat中
String domainPath = request.getScheme() + "://www.yourdomainname.com:8080";
System.out.println("upload!!!------start!!!----------------------!!!."); JSONObject jsonObject = new JSONObject();
/*检查文件是否上传*/
if (uploadFile.isEmpty()) {
System.out.println("uploadFile is Empty!!!");
jsonObject.put("success", false);
jsonObject.put("msg", "上传失败,请选择文件");
} String filePath = "";
String uploadPath = "";
/*用来区分文件类型 分别放在不同的位置*/
if (fileType.equals("img")) { //头部文件
//存储到图片区
filePath = imgPath + fileNum + "/";
uploadPath = "/upload/images/topimg/" + fileNum + "/";
} else if (fileType.equals("video")) {
//存储到视频区
filePath = videoPath;
uploadPath = "/upload/video/";
} else if (fileType.equals("spic")) {
//存到缩略图位置
filePath = newsPath;
uploadPath = "/upload/images/newsimg/";
} else if (fileType.equals("newspic")) {
filePath = newsPath;
uploadPath = "/upload/images/newsimg/";
} SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");
String dateStr = sf.format(new Date());
String fileName = dateStr + "-" + uploadFile.getOriginalFilename();
System.out.println("fileName:" + fileName); File dest = new File(filePath + fileName);
// System.out.println("abPath:"+filePath+fileName);
try {
uploadFile.transferTo(dest);
jsonObject.put("success", true);
jsonObject.put("errno", 0);
List<String> path = new ArrayList<>();
path.add(domainPath + uploadPath + fileName);
System.out.println("abPath:" + domainPath + uploadPath + fileName);
jsonObject.put("data", path);
jsonObject.put("modelId", fileNum);
// System.out.println("http://test91.ykmimi.com"+uploadPath+fileName);
} catch (IOException e) {
e.printStackTrace();
jsonObject.put("success", false);
jsonObject.put("errno", 1);
}
return jsonObject;
} }

此时,上传的文件会保存到properties配置的地址,访问的时候直接访问 http://yourdomainname.com:8080/upload/.../....文件后缀 即可访问到了.

[linux,springboot] - 记一次java项目部署的更多相关文章

  1. java项目部署Linux服务器几种启动方式总结经验

    一:两种部署包: 部署之前先说下两种包,java项目部署到服务器一般有用war包的,也有用jar包的,微服务spring-cloud普及后大部分打包都是jar,部署之前先搞清楚自己要打war包还是ja ...

  2. java项目部署到LIINUX

    天领导给个任务,把java项目部署到liunx服务器上.现记录步骤,方便以后查看.项目部署服务器步骤:服务器信息:弹性IP地址:xx.xx.xxx.xx账号:root密码:cjw@100 数据库信息: ...

  3. java项目部署后的文件路径获取

    //eclipse部署工程 String path = request.getServletContext().getRealPath( File.separator+ "WEB-INF&q ...

  4. JAVA项目部署(1)

    之前小菜觉得项目发布啊部署可难了,今个儿小菜接有幸触了一下java项目的打包和部署,没上手前觉得可高大上了,可难了,小菜这人就是做没做过的事前特别喜欢自己吓唬自己,这个习惯不好,得改!其实自己真正动手 ...

  5. 把我的Java项目部署到Linux系统

    以前,还未毕业,凭借自己三脚猫的功夫,只会在Windows环境中使用tomcat容器把项目跑起来. 以前的操作是,利用Eclipse把项目导出成War包,放到tomcat的webApp文件夹中,鼠标点 ...

  6. java项目部署在linux上

    在将java项目在linux上之前我们需要准备一下,首先是 一个打成war包的java项目,一个contes的系统,还有就是tomcat和jdkl的压缩包,可以在官网下载, jdk安装 先卸载cent ...

  7. windows下载的java项目部署到linux的各种解决方案

    1.Java是跨平台的,在linux下有问题,主要一是文件读取权限:二检查下系统环境变量设置可正确!.profile JavaWeb_将Windows平台上开发的JavaWeb项目部署到Linux平台 ...

  8. java项目部署在服务器环境配置以及命令的编写

    在往项目上部署java项目(即打成的jar包),要为相应的项目配置环境变量,即项目运行所需要的jar或其他第三方的jar包,java -cp derivativeAccording.jar:lib/c ...

  9. Windows Server 2012 R2服务器部署Tomcat JDK、安装Mysql以及将Java项目部署到CVM

    我们平时所调试的Java Web 项目需要在本地Eclipse或者MyEclipse当中开发调试,并且部署到Tomcat上来测试,比如说笔者这里用的eclipse添加tomcat服务器, 但是这里发布 ...

随机推荐

  1. jquery验证规则

    <!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程 ...

  2. ruby离线安装整理

    参考官方文档: https://rvm.io/rvm/offline 参考博客:https://blog.csdn.net/topswim/article/details/79260369 一.前提  ...

  3. linux中几个热键

    重要的几个热键[Tab],[ctrl]-c, [ctrl]-d  [Tab]按键---具有『命令补全』不『档案补齐』的功能 [Ctrl]-c按键---让当前的程序『停掉』 [Ctrl]-d按键---通 ...

  4. 如何使用onclick方式添加多个事件回调函数

    通过给onclcik包裹一个函数进行上下文的切换与参数的传递: function addClcikEvent(el, fn){ if(el.onclick){ var _back = el.oncli ...

  5. python全栈开发 * 26知识点汇总 * 180709

    26 logging collections random 模块 一.logging低配:日志不能写入文件与显示同时进行 import logging logging.basicConfig(leve ...

  6. day16 十六、包、循环导入、导入模块

    一.包的概念 包:一系列模块的集合体.包通过文件夹管理一系列功能相近的模块 重点:包中一定有一个专门用来管理包中所有模块的文件 包名:存放一系列模块的文件夹的名字 包名(对象)存放的是管理模块的那个文 ...

  7. GitHub 设置首页显示 404 There isn't a GitHub Pages site here.

    问题如题! 能使用的必要条件是: 1.创建的仓库 Code 中 必须 有 README.md 文件,内容自定 2.设置模板在仓库中 Settings -->GitHub Pages --> ...

  8. SQL[Err] ORA-00933: SQL command not properly ended

    原文链接:https://www.cnblogs.com/godtrue/p/3784526.html 1:可能SQL语句中关键字前后缺少空格 2:Oracle 给表起别名时,直接在表名的后面空格别名 ...

  9. post方式接口测试(一)_新建测试用例

    第一种方式:拷贝别人的 第二种方式:自己创建 二.打开浏览器(此处chrome),F12打开开发模式,输入网址登录,此时可获取到登录的 Request URL 二.打开postman,进入自己的Col ...

  10. py三个面试小问题

    1.是否遇到过Python的模块间循环引用的问题,如何避免它? 这是代码结构设计的问题,模块依赖和类依赖,如果老是觉得碰到循环引用可能的原因有几点: a.可能是模块的分界线划错地方了 b.可能是把应该 ...