之前部署的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. Radar Installation---(贪心)

    Radar Installation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 115873   Accepted: 2 ...

  2. 点击app分享链接,js判断手机是否安装某款app,有就尝试打开,没有就下载

    html: <h1 class="downlink"> 前往 </h1> js: document.addEventListener('DOMContent ...

  3. Changing Ethernet Media Speed for AIX

    ITS UNIX Systems Changing Ethernet Media Speed for AIX First you need to find out the device name of ...

  4. MSCKF_VIO:MSCKF的双目版本

    论文:MSCKF的双目版本 Robust Stereo Visual Inertial Odometry for Fast Autonomous Flight 下载地址:点击 源码地址:https:/ ...

  5. Python------excel读、写、拷贝

    #-----------------------读excel-----------------#1 打开方式 索引.名字#2 获取行数据 sheet.row_values(0):获取某行第n到m列(n ...

  6. react中进入某个详情页URL路劲参数Id获取问题

    <Route path={`${match.url}/detail/:id`} component={AppManageAddDetail} /> const { match:{param ...

  7. xcode工程编译错误之iOS解决CUICatalog: Invalid asset name supplied问题

    [问题分析]: 这个问题其实是老问题,产生原因就是因为在使用的时候 [UIImage imageNamed:]时,图片不存在或者传入的图片名为nil. [解决方法]: 添加一个系统断点,来判断如果图片 ...

  8. javaScript放在head和body的区别

    JavaScript写在哪里? 内部:Html网页的<body></body>中: 内部:Html网页的<head></head>中: 外部:外部js文 ...

  9. JAVA-数据库之MySQL与JDBC驱动下载与安装

    相关资料:<21天学通Java Web开发> MySQL下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.19-wi ...

  10. .net core 配置

    .net core 配置包括很多种 例如内存变量.命令行参数.环境变量以及物理文件配置和自定义配置 物理文件配置主要有三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfi ...