主题 : jeecms后台中怎样使用ajax
级别: 举人
UID: 81182
积分:138 加为好友
威望: 2 精华: 0
主题:14 回复:54
注册时间:2015-10-19
在线时长:0
1#   发表于:2015-11-04 10:18:38  IP:116.166.*.*
package com.jeecms.cms.action.member;
import static com.jeecms.cms.Constants.TPLDIR_MEMBER;

import java.io.IOException;
import java.util.Locale;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import com.jeecms.cms.manager.assist.CmsFileMng;
import com.jeecms.core.entity.CmsSite;
import com.jeecms.core.entity.CmsUser;
import com.jeecms.core.entity.Ftp;
import com.jeecms.core.manager.CmsUserMng;
import com.jeecms.core.manager.DbFileMng;
import com.jeecms.core.web.WebErrors;
import com.jeecms.core.web.util.CmsUtils;
import com.jeecms.core.web.util.FrontUtils;

public class ContributeAct extends AbstractContentMemberAct {

public static final String CONTRIBUTE_LIST = "tpl.contributeList";
public static final String CONTRIBUTE_ADD = "tpl.contributeAdd";
public static final String CONTRIBUTE_EDIT = "tpl.contributeEdit";
public static final String CONTRIBUTE_UPLOADMIDIA = "tpl.uploadMedia";
public static final String CONTRIBUTE_UPLOADATTACHMENT = "tpl.uploadAttachment";

/**
 * 会员投稿列表
 * 
 * @param title
 *            文章标题
 * @param channelId
 *            栏目ID
 * @param pageNo
 *            页码
 * @param request
 * @param model
 * @return
 */
@RequestMapping(value = "/member/contribute_list.jspx")
public String list(String queryTitle, Integer modelId,
Integer queryChannelId, Integer pageNo, HttpServletRequest request,
ModelMap model) {
return super.list(queryTitle, modelId, queryChannelId, CONTRIBUTE_LIST,
pageNo, request, model);
}

/**
 * 会员投稿添加
 * 
 * @param request
 * @param model
 * @return
 */
@RequestMapping(value = "/member/contribute_add.jspx")
public String add(HttpServletRequest request, HttpServletResponse response,
ModelMap model) {
return super.add( CONTRIBUTE_ADD, request, response, model);
}

/**
 * 会员投稿保存
 * 
 * @param id
 *            文章ID
 * @param title
 *            标题
 * @param author
 *            作者
 * @param description
 *            描述
 * @param txt
 *            内容
 * @param tagStr
 *            TAG字符串
 * @param channelId
 *            栏目ID
 * @param nextUrl
 *            下一个页面地址
 * @param request
 * @param response
 * @param model
 * @return
 */
@RequestMapping(value = "/member/contribute_save.jspx")
public String save(String title, String author, String description,
String txt, String tagStr, Integer channelId,Integer modelId, String captcha,
String mediaPath,String mediaType,
String[] attachmentPaths, String[] attachmentNames,
String[] attachmentFilenames, String[] picPaths, String[] picDescs,
String nextUrl, HttpServletRequest request,
HttpServletResponse response, ModelMap model) {
return super.save(title, author, description, txt, tagStr, channelId,modelId,
 captcha,mediaPath,mediaType,attachmentPaths,attachmentNames, attachmentFilenames
,picPaths,picDescs,nextUrl, request, response, model);
}

/**
 * 会员投稿修改
 * 
 * @param id
 *            文章ID
 * @param request
 * @param response
 * @param model
 * @return
 */
@RequestMapping(value = "/member/contribute_edit.jspx")
public String edit(Integer id, HttpServletRequest request,
HttpServletResponse response, ModelMap model) {
return super.edit(id, CONTRIBUTE_EDIT, request, response, model);
}

/**
 * 会员投稿更新
 * 
 * @param id
 *            文章ID
 * @param title
 *            标题
 * @param author
 *            作者
 * @param description
 *            描述
 * @param txt
 *            内容
 * @param tagStr
 *            TAG字符串
 * @param channelId
 *            栏目ID
 * @param nextUrl
 *            下一个页面地址
 * @param request
 * @param response
 * @param model
 * @return
 */
@RequestMapping(value = "/member/contribute_update.jspx")
public String update(Integer id, String title, String author,
String description, String txt, String tagStr, Integer channelId,
String mediaPath,String mediaType,
String[] attachmentPaths, String[] attachmentNames,
String[] attachmentFilenames, String[] picPaths, String[] picDescs,
String nextUrl, HttpServletRequest request,
HttpServletResponse response, ModelMap model) {
return super.update(id, title, author, description, txt, tagStr,
channelId, mediaPath,mediaType,attachmentPaths,attachmentNames, attachmentFilenames
,picPaths,picDescs, nextUrl, request, response, model);
}

/**
 * 会员投稿删除
 * 
 * @param ids
 *            待删除的文章ID数组
 * @param nextUrl
 *            下一个页面地址
 * @param request
 * @param response
 * @param model
 * @return
 */
@RequestMapping(value = "/member/contribute_delete.jspx")
public String delete(Integer[] ids, HttpServletRequest request,
String nextUrl, HttpServletResponse response, ModelMap model) {
return super.delete(ids, request, nextUrl, response, model);
}

@RequestMapping("/member/o_upload_media.jspx")
public String uploadMedia(
@RequestParam(value = "mediaFile", required = false) MultipartFile file,
String filename, HttpServletRequest request, ModelMap model) {
CmsSite site = CmsUtils.getSite(request);
CmsUser user = CmsUtils.getUser(request);
String origName = file.getOriginalFilename();
String ext = FilenameUtils.getExtension(origName).toLowerCase(
Locale.ENGLISH);
WebErrors errors = validateUpload(file, request);
if(filename!=null&&(filename.contains("/")||filename.contains("\\")||filename.indexOf("\0")!=-1)){
errors.addErrorCode("upload.error.filename", filename);
}
if (errors.hasErrors()) {
model.addAttribute("error", errors.getErrors().get(0));
return FrontUtils.getTplPath(request, site.getSolutionPath(),
TPLDIR_MEMBER, CONTRIBUTE_UPLOADMIDIA);
}
// TODO 检查允许上传的后缀
try {
String fileUrl;
if (site.getConfig().getUploadToDb()) {
String dbFilePath = site.getConfig().getDbFileUri();
if (!StringUtils.isBlank(filename)
&& FilenameUtils.getExtension(filename).equals(ext)) {
filename = filename.substring(dbFilePath.length());
fileUrl = dbFileMng.storeByFilename(filename, file
.getInputStream());
} else {
fileUrl = dbFileMng.storeByExt(site.getUploadPath(), ext,
file.getInputStream());
// 加上访问地址
fileUrl = request.getContextPath() + dbFilePath + fileUrl;
}
} else if (site.getUploadFtp() != null) {
Ftp ftp = site.getUploadFtp();
String ftpUrl = ftp.getUrl();
if (!StringUtils.isBlank(filename)
&& FilenameUtils.getExtension(filename).equals(ext)) {
filename = filename.substring(ftpUrl.length());
fileUrl = ftp.storeByFilename(filename, file
.getInputStream());
} else {
fileUrl = ftp.storeByExt(site.getUploadPath(), ext, file
.getInputStream());
// 加上url前缀
fileUrl = ftpUrl + fileUrl;
}
} else {
String ctx = request.getContextPath();
if (!StringUtils.isBlank(filename)
&& FilenameUtils.getExtension(filename).equals(ext)) {
filename = filename.substring(ctx.length());
fileUrl = fileRepository.storeByFilename(filename, file);
} else {
fileUrl = fileRepository.storeByExt(site.getUploadPath(),
ext, file);
// 加上部署路径
fileUrl = ctx + fileUrl;
}
}
cmsUserMng.updateUploadSize(user.getId(), Integer.parseInt(String.valueOf(file.getSize()/1024)));
fileMng.saveFileByPath(fileUrl, fileUrl, false);
model.addAttribute("mediaPath", fileUrl);
model.addAttribute("mediaExt", ext);
} catch (IllegalStateException e) {
model.addAttribute("error", e.getMessage());
} catch (IOException e) {
model.addAttribute("error", e.getMessage());
}
return FrontUtils.getTplPath(request, site.getSolutionPath(),
TPLDIR_MEMBER, CONTRIBUTE_UPLOADMIDIA);
}

@RequestMapping("/member/o_upload_attachment.jspx")
public String uploadAttachment(
@RequestParam(value = "attachmentFile", required = false) MultipartFile file,
String attachmentNum, HttpServletRequest request, ModelMap model) {
CmsSite site = CmsUtils.getSite(request);
CmsUser user= CmsUtils.getUser(request);
String origName = file.getOriginalFilename();
String ext = FilenameUtils.getExtension(origName).toLowerCase(
Locale.ENGLISH);
WebErrors errors = validateUpload(file,request);
if (errors.hasErrors()) {
model.addAttribute("error", errors.getErrors().get(0));
return FrontUtils.getTplPath(request, site.getSolutionPath(),
TPLDIR_MEMBER, CONTRIBUTE_UPLOADATTACHMENT);
}
// TODO 检查允许上传的后缀
try {
String fileUrl;
if (site.getConfig().getUploadToDb()) {
String dbFilePath = site.getConfig().getDbFileUri();
fileUrl = dbFileMng.storeByExt(site.getUploadPath(), ext, file
.getInputStream());
// 加上访问地址
fileUrl = request.getContextPath() + dbFilePath + fileUrl;
} else if (site.getUploadFtp() != null) {
Ftp ftp = site.getUploadFtp();
String ftpUrl = ftp.getUrl();
fileUrl = ftp.storeByExt(site.getUploadPath(), ext, file
.getInputStream());
// 加上url前缀
fileUrl = ftpUrl + fileUrl;
} else {
String ctx = request.getContextPath();
fileUrl = fileRepository.storeByExt(site.getUploadPath(), ext,
file);
// 加上部署路径
fileUrl = ctx + fileUrl;
}
cmsUserMng.updateUploadSize(user.getId(), Integer.parseInt(String.valueOf(file.getSize()/1024)));
fileMng.saveFileByPath(fileUrl, origName, false);
model.addAttribute("attachmentPath", fileUrl);
model.addAttribute("attachmentName", origName);
model.addAttribute("attachmentNum", attachmentNum);
} catch (IllegalStateException e) {
model.addAttribute("error", e.getMessage());
} catch (IOException e) {
model.addAttribute("error", e.getMessage());
}
return FrontUtils.getTplPath(request, site.getSolutionPath(),
TPLDIR_MEMBER, CONTRIBUTE_UPLOADATTACHMENT);
}

private WebErrors validateUpload(MultipartFile file,
HttpServletRequest request) {
String origName = file.getOriginalFilename();
CmsUser user= CmsUtils.getUser(request);
String ext = FilenameUtils.getExtension(origName).toLowerCase(Locale.ENGLISH);
int fileSize = (int) (file.getSize() / 1024);
WebErrors errors = WebErrors.create(request);
if (errors.ifNull(file, "file")) {
return errors;
}
if(origName!=null&&origName.indexOf("\0")!=-1){
errors.addErrorCode("upload.error.filename", origName);
}
//非允许的后缀
if(!user.isAllowSuffix(ext)){
errors.addErrorCode("upload.error.invalidsuffix", ext);
return errors;
}
//超过附件大小限制
if(!user.isAllowMaxFile((int)(file.getSize()/1024))){
errors.addErrorCode("upload.error.toolarge",origName,user.getGroup().getAllowMaxFile());
return errors;
}
//超过每日上传限制
if (!user.isAllowPerDay(fileSize)) {
long laveSize=user.getGroup().getAllowPerDay()-user.getUploadSize();
if(laveSize<0){
laveSize=0;
}
errors.addErrorCode("upload.error.dailylimit", laveSize);
}
return errors;
}
@Autowired
private DbFileMng dbFileMng;
@Autowired
private CmsUserMng cmsUserMng;
@Autowired
private CmsFileMng fileMng;
}
级别: 版主
UID: 70293
积分:78391 加为好友
威望: 1 精华: 0
主题:7 回复:68397
注册时间:2014-12-03
在线时长:0
2#   发表于:2015-11-04 10:20:06  IP:182.13.*.*
ajax只是种提交方式,是js写的
1
级别: 举人
UID: 81182
积分:138 加为好友
威望: 2 精华: 0
主题:14 回复:54
注册时间:2015-10-19
在线时长:0
3#   发表于:2015-11-04 10:24:41  IP:116.166.*.*
领导的意思是用JSON来改写这个类 只要可以提取出数据就行 可我一直不明白
级别: 版主
UID: 70293
积分:78391 加为好友
威望: 1 精华: 0
主题:7 回复:68397
注册时间:2014-12-03
在线时长:0
4#   发表于:2015-11-04 10:26:32  IP:182.13.*.*
抱歉,这属于二次开发的内容,不在服务范围内。
1
1 共1页