由于struts框架对request对象做了封装,原来处理上传图片的upload_json.jsp文件无法使用了,于是对kindeditor中处理上传图片的upload_json.jsp文件进行重写,通过多次测试后,成功实现了图片的上传。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*,java.io.*"%>
<%@ page import="java.text.SimpleDateFormat"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page import="org.apache.commons.fileupload.disk.*"%>
<%@ page import="org.apache.commons.fileupload.servlet.*"%>
<%@ page import="com.opensymphony.xwork2.ActionContext"%>
<%@ page import="org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper"%>
<%@ page import="org.json.simple.*"%>
<%
//文件保存目录路径 img_upload是服务器存储上传图片的目录名
String savePath = request.getSession().getServletContext().getRealPath("/")+ "img_upload/";
//文件保存目录URL
String saveUrl = request.getContextPath() + "/img_upload/";
//定义允许上传的文件扩展名
String[] fileTypes = new String[] { "gif", "jpg", "jpeg", "png","bmp" };
//允许最大上传文件大小
long maxSize = 1024000;
//Struts2 请求 包装过滤器
MultiPartRequestWrapper wrapper = (MultiPartRequestWrapper) request;
//获得上传的文件名
String fileName = wrapper.getFileNames("imgFile")[0];
//获得文件过滤器
File file = wrapper.getFiles("imgFile")[0];
//得到上传文件的扩展名
String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
//检查扩展名
if (!Arrays.<String> asList(fileTypes).contains(fileExt)) {
out.println(getError("上传文件扩展名是不允许的扩展名。"));
return;
}
//检查文件大小
if (file.length() > maxSize) {
out.println(getError("上传文件大小超过限制。"));
return;
}
//检查目录
File uploadDir = new File(savePath);
if (!uploadDir.isDirectory()) {
out.println(getError("上传目录不存在。"));
return;
}
//检查目录写入权限
if (!uploadDir.canWrite()) {
out.println(getError("上传目录没有写入权限。"));
return;
}
//重构上传图片的名称
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
String newImgName = df.format(new Date()) + "_"+ new Random().nextInt(1000) + "." + fileExt;
//设置 KE 中的图片文件地址
String newFileName = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()
+ saveUrl + newImgName;
byte[] buffer = new byte[1024];
//获取文件输出流
FileOutputStream fos = new FileOutputStream(savePath + newImgName);
//获取内存中当前文件输入流
InputStream in = new FileInputStream(file);
try {
int num = 0;
while ((num = in.read(buffer)) > 0) {
fos.write(buffer, 0, num);
}
} catch (Exception e) {
e.printStackTrace(System.err);
} finally {
in.close();
fos.close();
}
//发送给 KE
JSONObject obj = new JSONObject();
obj.put("error", 0);
obj.put("url", saveUrl + newImgName);
out.println(obj.toJSONString());
%>
<%!private String getError(String message) {
JSONObject obj = new JSONObject();
obj.put("error", 1);
obj.put("message", message);
return obj.toJSONString();
}
%>
波比源码 » kindeditor与Struts2框架整合无法上传图片的问题
order levaquin 250mg without prescription levofloxacin 250mg generic
buy ampicillin 500mg online cheap ampicillin 500mg cost erythromycin 250mg uk
generic lamotrigine purchase lamictal generic retin for sale online
cost accutane 20mg amoxil 250mg pills azithromycin 500mg generic
indomethacin ca trimox brand order trimox 250mg without prescription
cialis 20mg kaufen ohne rezept tadalafil 20mg kaufen sildenafil 50mg ohne rezept
accutane online order accutane 10mg ivermectina 6 mg
ramipril pills cheap astelin 10 ml azelastine online buy
terazosin 5mg for sale azulfidine 500 mg generic azulfidine 500 mg oral
oral benicar order generic olmesartan diamox 250 mg cost
molnunat 200 mg oral prevacid brand buy generic lansoprazole 15mg
zoloft 100mg cost order sertraline sale buy viagra 50mg sale
tadalafil for women buy prozac 40mg generic viagra for sale
cheap cialis generic betamethasone 20gm for sale buy anafranil 50mg for sale
buy sporanox 100mg for sale buy tindamax 500mg pill order tinidazole 300mg generic
cheap glucophage 1000mg lipitor 10mg without prescription generic cialis 5mg
norvasc 5mg usa purchase amlodipine sale tadalafil 5mg generic
buy sildenafil 100mg pills buy sildenafil 50mg order lisinopril 5mg online
oral omeprazole 10mg real money spins online gambling addiction
metoprolol pill buy tenormin pills levitra 10mg sale
writing paper online online casino slots no download poker online free
order levitra 20mg purchase levitra generic methylprednisolone 8mg over the counter
tadalafil online order order tadalafil 5mg generic order sildenafil 100mg pill
buy baclofen generic zanaflex cheap order toradol
buy sumatriptan 50mg pills order avodart pills brand dutasteride
buy ranitidine 150mg online mobic 7.5mg ca order celecoxib 100mg generic
order generic zocor zocor 10mg tablet order propecia
ceftin 250mg us bimatoprost online methocarbamol 500mg canada
sildalis usa estradiol 2mg usa buy lamotrigine 200mg sale
buy deltasone 20mg generic amoxil 1000mg uk buy amoxil 1000mg for sale
prednisone 20mg for sale prazosin drug buy generic vermox 100mg
buy sildenafil pill nolvadex 10mg pill buy budesonide online cheap
tretinoin gel cost oral tadalis 20mg avana drug
buy acetazolamide 250mg pill isosorbide buy online buy azathioprine 25mg for sale
order carvedilol for sale elavil without prescription order generic elavil 10mg
buy fosamax pill fosamax us ibuprofen 600mg without prescription
dapoxetine brand buy avanafil 100mg pill order motilium without prescription
Good info. Lucky me I reach on your website by accident, I bookmarked it. Metropol Halı Karaca Halı Öztekin ve Selçuklu Halı Cami Halısı ve Cami Halıları Türkiye’nin En Büyük Cami Halısı Fabrikasıyız…
purchase pamelor pills purchase panadol generic paroxetine medication
cheap pepcid 40mg tacrolimus price brand mirtazapine
doxycycline uk methylprednisolone 8mg for sale medrol over the counter
buy tadalafil 20mg for sale plavix pills order trimox 250mg without prescription
order generic cialis Buy cialis overnight delivery viagra for sale
purchase tadalafil without prescription levitra dosage buying ed pills online
metformin order glycomet medication nolvadex over the counter
prednisone 20mg brand amoxicillin online buy buy amoxil online cheap
buy generic isotretinoin order accutane generic ampicillin 500mg pill
ivermectin 3mg for sale order stromectol generic cheap deltasone
cost ondansetron ondansetron 4mg cheap trimethoprim uk
isotretinoin us order amoxicillin 1000mg generic purchase azithromycin without prescription
provigil 200mg uk lopressor 100mg cost order lopressor 50mg generic