关于Tomcat和Nginx图片上传以及访问的路径问题

在实际项目中,我们很多时候需要把图片保存起来,方式有很多种,最简便的方法就是使用第三方的服务,比如阿里云、腾讯、七牛云、网易云信等都提供了图片的镜像存储,能轻松存储图片,我之前写过七牛云的图片存储,有兴趣的同学可以去看一下。

今天我要总结的东西是如何将文件上传到自己的服务器并且访问。

当我们安装好Tomcat和Nginx的时候,在其安装目录下面都会有一个根目录,Tomcat的根目录是 /var/www/html/,而Nginx是 /usr/local/nginx/html/,

我们在这两个文件夹下建一个image目录,通过IP地址+/image/图片名的方式就可以直接访问到

    public static final String FEEDBACK_IMAGE_PATH = "http://120.55.56.100/nnuimage/";

    public static final String FEEDBACK_IMAGE_URL = "/var/www/html/nnuimage/";

在这里也简单提供一个上传工具类:

package com.bztech.core.common.utils;

import cn.hutool.core.date.DateUtil;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.UUID;

/**
 * @author chenjian
 *
 * 上传工具
 */

public class UploadUtils {

    /**
     *
     * @param multipartFile 文件
     * @param uploadPathPrefix 文件上传路径
     * @param prefix 文件前缀名
     * @return 文件名
     * @throws IOException
     */
    public static String upload(MultipartFile multipartFile,String uploadPathPrefix,String prefix) throws IOException {
        //文件的后缀名
        String suffix = multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf("."));

        //存储于数据库中的文件名构造
        String fileName = new StringBuffer()
                //文件名前缀
                .append(prefix)
                .append(UUID.randomUUID())
                .append(DateUtil.format(new Date(), "yyyyMMddHHmmss"))
                .append(suffix)
                .toString();

        //文件上传
        File file = new File(uploadPathPrefix + fileName);

        multipartFile.transferTo(file);

        return fileName;
    }

}


原文地址:https://www.cnblogs.com/chenzhengwei/p/10943423.html

时间: 2024-08-27 23:24:13

关于Tomcat和Nginx图片上传以及访问的路径问题的相关文章

kindeditor更改图片上传时网络图片的路径

当我们想要使用kindeditor的图片上传功能时,有两种选择图片方式,一种是本地选择,一种是在图片空间中选择,图片空间的默认地址是服务器上的/kindeditor/attached/image/下面. 如果想要改变这个路径,需要找到/kindeditor/php/file_manager_json.php这个文件,然后可以看到下面几行: //根目录路径,可以指定绝对路径,比如 /var/www/attached/ $root_path = $php_path . '../attached/';

视频(其他)下载+tomcat 配置编码+图片上传限制大小

视频下载:前台 jsp function downVideo(value,row,index){ return '<a href="<%=basePath%>admin/video/video!fileDown.ds?uname='+row.uname+'&filepath='+value+'">下载</a>'; } 后台java : action: public void fileDown() { FileUtil.download(fil

nginx图片上传失败

最近做一个微网站,图片上传出现问题.有时能上传图片,有时上传失败.代码测试了好几遍,也是没问题的.后来查看nginx日志access.log,发现了413问题,说明上传的图片太大了.解决办法是:nginx.conf配置client_max_body_size,我的配置里默认为2M,上传的图片超过这个大小就上传失败了. vi /usr/local/nginx/conf/nginx.conf 修改http下的client_max_body_size为10M,问题解决了!

nginx代理图片上传以及访问

nginx代理图片上传 首先需要利用nginx代理图片访问参考 https://www.cnblogs.com/TJ21/p/12609017.html 编写接受文件的controller 1 @PostMapping("image") 2 public ResponseEntity<String> uploadImage(MultipartFile file){ 3 4 String url = null; 5 try { 6 url = uploadService.up

jsp--- jsp图片上传到了正确路径,但在正确路径显示不出来

首先要说的是,路径里没有中文 图片也在正确路径 ************************************ 刷新(Refresh)一下项目

多实例集群部署下的图片上传

场景 存在多个无状态的Web应用服务,支持多实例集群化部署(使用nginx作为反向代理) 在Web应用中存在图片文件上传功能 不能将图片文件直接保存到数据库中,数据库中只保存文件访问链接 问题 因为Web应用服务是多实例集群化部署的,因此上传图片之后不能简单保存到本地,否则其他实例将无法访问上传之后的图片. 图片上传之后不要通过Web应用来访问(像Tomcat这样的Servlet容器不擅长处理静态文件) 解决方案 图片如何存储 针对第一个问题,图片通过Web应用上传之后不能保存在本地,应该使用专

百度UEditor图片上传、SpringMVC、Freemarker、Tomcat、Nginx、静态资源

个人官网.公司项目都需要 可视化编辑器,百度UEditor做得很不错,就用的这个.项目后台用到了SpringMVC.Freemarker,开发过程中部署在Jetty,线上部署用Tomcat,最后可能配置Nginx代理.     在实际使用过程中,遇到了太多的问题,因此有必要梳理和总结下. 1. 先说百度UEditor在Java环境中的使用:1.1   Html页面或者Freemarker模版里,引入百度UEditor的相关JS和CSS,如下 <script type="text/javas

图片上传到tomcat后突然消失

文章转载:http://blog.csdn.net/helloworld1993/article/details/47661759 调试上传用户头像时看不见的功夫上传的图片就不见了,看了这篇文章恍然大悟!!!以上是一字不差地原文 -------------------------------------------------------------------------------------------------分哥线-----------------------------------

分布式系统图片上传方案

思路分析 直接将图片上传到一个指定的目录,访问.下载图片都访问这个目录. 由于项目最终是要部署到Linux环境,所以直接将图片上传到Linux服务器. 问题:那如何将图片上传到Linux呢? 答:使用vsftpd组件,实现文件传输. vsftpd简介 问题1:vsftpd是什么? 答:ftp(File Transfer Protocol)文件传输协议.(实现不同操作系统之间文件的传输) vsftpd是一个基于ftp协议的文件传输服务器软件. 问题2:vsftpd作用是什么? 答:传输文件.(跨平