解决图片上传问题

This commit is contained in:
dingruichao 2020-11-08 09:23:22 +08:00
parent ba4a21eee4
commit 23fe3cc0c3
18 changed files with 374 additions and 113 deletions

View File

@ -19,7 +19,7 @@ server:
port: 80
servlet:
# 应用的访问路径
context-path: /
context-path: /manager
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8

View File

@ -458,7 +458,7 @@ $.ajaxSetup({
//上传文件
function uploadFile(async, fullPathId, fileNameId, absolutePAthId) {
function uploadFile(async, filePathId, fileNameId, absolutePAthId) {
let res = -1;
var formData = new FormData();
if ($('#filePath')[0].files[0] == null) {
@ -468,7 +468,7 @@ function uploadFile(async, fullPathId, fileNameId, absolutePAthId) {
formData.append('fileName', $("#fileName").val());
formData.append('file', $('#filePath')[0].files[0]);
$.ajax({
url: "/common/upload",
url: ctx + "/common/upload",
type: 'post',
cache: false,
data: formData,
@ -478,8 +478,8 @@ function uploadFile(async, fullPathId, fileNameId, absolutePAthId) {
async: async,
success: function(result) {
if (result.code == web_status.SUCCESS) {
if (fullPathId) {
$('#' + fullPathId).val(result.url);
if (filePathId) {
$('#' + filePathId).val(result.url);
}
if (fileNameId) {
$('#' + fileNameId).val(result.originalFilename);
@ -502,7 +502,7 @@ function uploadFile(async, fullPathId, fileNameId, absolutePAthId) {
return res;
}
//上传文件
function uploadMoreFile(async, fullPathId,formNameId, fileNameId, absolutePAthId) {
function uploadMoreFile(async, filePathId,formNameId, fileNameId, absolutePAthId) {
let res = -1;
var formData = new FormData();
if ($('#'+formNameId)[0].files[0] == null) {
@ -512,7 +512,7 @@ function uploadMoreFile(async, fullPathId,formNameId, fileNameId, absolutePAthId
formData.append('fileName', $("#fileName").val());
formData.append('file', $('#'+formNameId)[0].files[0]);
$.ajax({
url: "/common/upload",
url: ctx + "/common/upload",
type: 'post',
cache: false,
data: formData,
@ -522,8 +522,8 @@ function uploadMoreFile(async, fullPathId,formNameId, fileNameId, absolutePAthId
async: async,
success: function(result) {
if (result.code == web_status.SUCCESS) {
if (fullPathId) {
$('#' + fullPathId).val(result.url);
if (filePathId) {
$('#' + filePathId).val(result.url);
}
if (fileNameId) {
$('#' + fileNameId).val(result.originalFilename);

View File

@ -6,6 +6,7 @@ import java.io.InputStream;
import java.util.LinkedHashMap;
import java.util.Map;
import javax.servlet.Filter;
import com.ruoyi.common.constant.Constants;
import org.apache.commons.io.IOUtils;
import org.apache.shiro.cache.ehcache.EhCacheManager;
import org.apache.shiro.codec.Base64;
@ -34,6 +35,7 @@ import com.ruoyi.framework.shiro.web.filter.sync.SyncOnlineSessionFilter;
import com.ruoyi.framework.shiro.web.session.OnlineWebSessionManager;
import com.ruoyi.framework.shiro.web.session.SpringSessionValidationScheduler;
import at.pollux.thymeleaf.shiro.dialect.ShiroDialect;
import org.springframework.core.annotation.Order;
/**
* 权限配置加载
@ -279,6 +281,9 @@ public class ShiroConfig
filterChainDefinitionMap.put("/js/**", "anon");
filterChainDefinitionMap.put("/ruoyi/**", "anon");
//上传到本地的图片允许匿名访问
filterChainDefinitionMap.put(Constants.RESOURCE_PREFIX + "/**", "anon");
//网站允许匿名访问
filterChainDefinitionMap.put("/home/**", "anon");
filterChainDefinitionMap.put("/images/**", "anon");

View File

@ -0,0 +1,31 @@
package com.ruoyi.web.controller.front;
import com.ruoyi.common.config.Global;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.web.domain.ClasssicCases;
import com.ruoyi.web.service.IClasssicCasesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@Controller
@RequestMapping("/home")
public class HomeController {
@Autowired
private IClasssicCasesService classsicCasesService;
/**
* 进入网站首页
*/
@GetMapping("/index")
public String index(ModelMap mmap) {
List<ClasssicCases> classsicCasesList = classsicCasesService.selectClasssicCasesList(null);
mmap.put("classsicCasesList", classsicCasesList);
return "index";
}
}

View File

@ -0,0 +1,145 @@
package com.ruoyi.web.domain;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 典型案例对象 classsic_cases
*
* @author ruoyi
* @date 2020-10-21
*/
public class ClasssicCases extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** ID */
private Long id;
/** 标题 */
private String title;
/** 简介 */
private String introduction;
/** 详情内容 */
private String content;
/** 案例类型(来至于字典表) */
private String type;
/** 点击量 */
private Integer hits;
/** 图片地址(多个地址用,分隔) */
private String pictureUrl;
/** 状态0正常 1停用 */
private String status;
/** 删除标志0代表存在 2代表删除 */
private String delFlag;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setTitle(String title)
{
this.title = title;
}
public String getTitle()
{
return title;
}
public void setIntroduction(String introduction)
{
this.introduction = introduction;
}
public String getIntroduction()
{
return introduction;
}
public void setContent(String content)
{
this.content = content;
}
public String getContent()
{
return content;
}
public void setType(String type)
{
this.type = type;
}
public String getType()
{
return type;
}
public void setHits(Integer hits)
{
this.hits = hits;
}
public Integer getHits()
{
return hits;
}
public void setPictureUrl(String pictureUrl)
{
this.pictureUrl = pictureUrl;
}
public String getPictureUrl()
{
return pictureUrl;
}
public void setStatus(String status)
{
this.status = status;
}
public String getStatus()
{
return status;
}
public void setDelFlag(String delFlag)
{
this.delFlag = delFlag;
}
public String getDelFlag()
{
return delFlag;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("title", getTitle())
.append("introduction", getIntroduction())
.append("content", getContent())
.append("type", getType())
.append("hits", getHits())
.append("pictureUrl", getPictureUrl())
.append("status", getStatus())
.append("delFlag", getDelFlag())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
}
}

View File

@ -0,0 +1,33 @@
package com.ruoyi.web.mapper;
import com.ruoyi.web.domain.ClasssicCases;
import java.util.List;
/**
* 典型案例Mapper接口
*
* @author ruoyi
* @date 2020-10-21
*/
public interface ClasssicCasesMapper
{
/**
* 查询典型案例
*
* @param id 典型案例ID
* @return 典型案例
*/
public ClasssicCases selectClasssicCasesById(Long id);
/**
* 查询典型案例列表
*
* @param classsicCases 典型案例
* @return 典型案例集合
*/
public List<ClasssicCases> selectClasssicCasesList(ClasssicCases classsicCases);
}

View File

@ -0,0 +1,30 @@
package com.ruoyi.web.service;
import com.ruoyi.web.domain.ClasssicCases;
import java.util.List;
/**
* 典型案例Service接口
*
* @author ruoyi
* @date 2020-10-21
*/
public interface IClasssicCasesService
{
/**
* 查询典型案例
*
* @param id 典型案例ID
* @return 典型案例
*/
public ClasssicCases selectClasssicCasesById(Long id);
/**
* 查询典型案例列表
*
* @param classsicCases 典型案例
* @return 典型案例集合
*/
public List<ClasssicCases> selectClasssicCasesList(ClasssicCases classsicCases);
}

View File

@ -0,0 +1,46 @@
package com.ruoyi.web.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.web.domain.ClasssicCases;
import com.ruoyi.web.mapper.ClasssicCasesMapper;
import com.ruoyi.web.service.IClasssicCasesService;
import java.util.List;
/**
* 典型案例Service业务层处理
*
* @author ruoyi
* @date 2020-10-21
*/
@Service
public class ClasssicCasesServiceImpl implements IClasssicCasesService
{
@Autowired
private ClasssicCasesMapper classsicCasesMapper;
/**
* 查询典型案例
*
* @param id 典型案例ID
* @return 典型案例
*/
@Override
public ClasssicCases selectClasssicCasesById(Long id)
{
return classsicCasesMapper.selectClasssicCasesById(id);
}
/**
* 查询典型案例列表
*
* @param classsicCases 典型案例
* @return 典型案例
*/
@Override
public List<ClasssicCases> selectClasssicCasesList(ClasssicCases classsicCases)
{
return classsicCasesMapper.selectClasssicCasesList(classsicCases);
}
}

View File

@ -1,18 +0,0 @@
package com.ruoyi.web.controller.front;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/home")
public class WebController {
private String prefix = "home";
/**
* 进入网站首页
*/
@GetMapping("/index")
public String index()
{ return "index";
}
}

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.web.mapper.ClasssicCasesMapper">
<resultMap type="ClasssicCases" id="ClasssicCasesResult">
<result property="id" column="id" />
<result property="title" column="title" />
<result property="introduction" column="introduction" />
<result property="content" column="content" />
<result property="type" column="type" />
<result property="hits" column="hits" />
<result property="pictureUrl" column="picture_url" />
<result property="status" column="status" />
<result property="delFlag" column="del_flag" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectClasssicCasesVo">
select id, title, introduction, content, type, hits, picture_url, status, del_flag, create_by, create_time, update_by, update_time from classsic_cases
</sql>
<select id="selectClasssicCasesList" parameterType="ClasssicCases" resultMap="ClasssicCasesResult">
<include refid="selectClasssicCasesVo"/>
limit 4
</select>
<select id="selectClasssicCasesById" parameterType="Long" resultMap="ClasssicCasesResult">
<include refid="selectClasssicCasesVo"/>
where id = #{id}
</select>
</mapper>

View File

@ -171,10 +171,10 @@
</div>
</div>
<div class="jdal_ul fix">
<ul>
<ul th:each="classsicCases : ${classsicCasesList}">
<li>
<div class="jdal_ul_img">
<img th:src="@{/images/img3.jpg}" alt="">
<img th:src="${classsicCases.pictureUrl}" alt="">
<div class="jdal_ul_hover">
<a href="">
<img th:src="@{/images/icon7.png}" alt="">免费咨询
@ -186,58 +186,7 @@
</div>
<div class="jdal_ul_text">
<h3>中标后招标人反悔拒绝签订合同该怎么办</h3>
<p>案例类型:商业案例</p>
</div>
</li>
<li>
<div class="jdal_ul_img">
<img th:src="@{/images/img4.jpg}" alt="">
<div class="jdal_ul_hover">
<a href="">
<img th:src="@{/images/icon7.png}" alt="">免费咨询
</a>
<a href="">
<img th:src="@{/images/icon8.png}" alt="">案例详情
</a>
</div>
</div>
<div class="jdal_ul_text">
<h3>专项维修资金不可不交</h3>
<p>案例类型:公共案例</p>
</div>
</li>
<li>
<div class="jdal_ul_img">
<img th:src="@{/images/img5.jpg}" alt="">
<div class="jdal_ul_hover">
<a href="">
<img th:src="@{/images/icon7.png}" alt="">免费咨询
</a>
<a href="">
<img th:src="@{/images/icon8.png}" alt="">案例详情
</a>
</div>
</div>
<div class="jdal_ul_text">
<h3>"调岗降薪"专题讲座案例分析</h3>
<p>案例类型:合同案例</p>
</div>
</li>
<li>
<div class="jdal_ul_img">
<img th:src="@{/images/img6.jpg}" alt="">
<div class="jdal_ul_hover">
<a href="">
<img th:src="@{/images/icon7.png}" alt="">免费咨询
</a>
<a href="">
<img th:src="@{/images/icon8.png}" alt="">案例详情
</a>
</div>
</div>
<div class="jdal_ul_text">
<h3>解读企业运营中的风险高发点之字体侵权</h3>
<p>案例类型:知识产权</p>
<p>案例类型:<span th:text="${classsicCases.type}"></span></p>
</div>
</li>
</ul>
@ -839,38 +788,11 @@
<!-- 底部start -->
<th:block th:replace="footer :: footer"/>
<!-- 底部end -->
<!-- 右侧悬浮 -->
<ul class="xfList">
<li>
<div class="div">
<dl><dt class="icont"><a href="" target="_blank">返回<br>平台</a></dt></dl>
</div>
</li>
<li class="">
<div class="div">
<dl><dt class="icon"><img class="blImg" th:src="@{/images/icon2.png}"></dt></dl>
</div>
<div class="telDiv"><i class="icons"><img th:src="@{/images/icon2.png}"></i>
<div class="divs">
<div class="telSmldiv">021-63212255</div>
</div>
</div>
</li>
<li>
<a href="" target="_blank">
<div class="div">
<dl><dt class="icon"><img th:src="@{/images/icon3.png}" alt=""></dt></dl>
</div>
</a>
</li>
<li>
<a href="javascript: initScrollToTop();">
<div class="div">
<dl><dt class="icon"><img class="blImg" th:src="@{/images/icon4.png}"></dt></dl>
</div>
</a>
</li>
</ul>
<!-- 右侧悬浮start -->
<th:block th:replace="right_float :: right_float"/>
<!-- 右侧悬浮end -->
<div class="tankugn_zzc"></div>
<div class="tankuang_cont">
<div class="colok">

View File

@ -0,0 +1,31 @@
<ul th:fragment="right_float" class="xfList">
<li>
<div class="div">
<dl><dt class="icont"><a href="" target="_blank">返回<br>平台</a></dt></dl>
</div>
</li>
<li class="">
<div class="div">
<dl><dt class="icon"><img class="blImg" th:src="@{/images/icon2.png}"></dt></dl>
</div>
<div class="telDiv"><i class="icons"><img th:src="@{/images/icon2.png}"></i>
<div class="divs">
<div class="telSmldiv">021-63212255</div>
</div>
</div>
</li>
<li>
<a href="" target="_blank">
<div class="div">
<dl><dt class="icon"><img th:src="@{/images/icon3.png}" alt=""></dt></dl>
</div>
</a>
</li>
<li>
<a href="javascript: initScrollToTop();">
<div class="div">
<dl><dt class="icon"><img class="blImg" th:src="@{/images/icon4.png}"></dt></dl>
</div>
</a>
</li>
</ul>