1.首先应配置tomcate属性,在/tomcate/conf/service.xml里配置如下:
2.配置完 .xml文件后,我们需要创建相关的文件。如上1中的文件路径。
E:/tomcat-file/linkms/upload/webImages. tomcate在加载时将会自动获取该目录下的所有图片/文件。
3.配置SSH框架的文件属性。如下:
(1)创建一个upload.property.
(2)在.property里配置:
ueditor.upLoadUrl=E:/tomcat-file/linkms/file_img
EXCEL2003_MAX_SIZE_LIMIT=5242880
localUri = E:/tomcat-file/linkms/upload
fileUri =/webImages
//这里使用的是百度编辑器的文件图片上传(设置本地路径,文件名和最大上传文件大小)
4.编写上传文件的action(注这里不讨论model模型的上传文件类,在service上主要是对数据库的增加操作,只需将上传文件的相对路径存到数据库即可!)
/**
* 设置图片logo上传
*/
public String uploadPic(){
String imgUrl="";
try {
String localUri = ApplicationProperties.getMessage("localUri");
String fileUri = ApplicationProperties.getMessage("fileUri");
if(pic !=null && picFileName != null){//上传单张图片
imgUrl=HttpFileUtil.upLoadFileToURI(pic,picFileName, localUri, fileUri);
webObj.setLogo(imgUrl);
}else if (pics != null && picsFileName != null) {//上传多张图片
for (int i = 0; i < pics.size(); i++) {
imgUrl+=HttpFileUtil.upLoadFileToURI(pics.get(i),picsFileName.get(i), localUri, fileUri);
}
webObj.setLogo(imgUrl);
}
} catch (Exception e) {
e.printStackTrace();
}
if(imgUrl.indexOf(",",imgUrl.length()-1)>0){//判断是否是imgurl有多余的,分割符号
imgUrl=imgUrl.substring(0,imgUrl.length()-1);//去掉多余的符号
}
Map jsonMap = new HashMap();
jsonMap.put("imgUrl", imgUrl);
setJsonResult(JSONObject.fromObject(jsonMap));
return SUCCESS;
}
private File pic;
private String picFileName;
public File getPic() {
return pic;
}
public void setPic(File pic) {
this.pic = pic;
}
public String getPicFileName() {
return picFileName;
}
public void setPicFileName(String picFileName) {
this.picFileName = picFileName;
}
5.前端的显示
var select = $('#datagrid_ui_table').datagrid('getSelected');
$("#logoPic").attr("src","." + select.logo);
//文件上传同时把图片的url赋值给webObj.url
function upLogoPic() {
$("#addForm").attr("enctype", "multipart/form-data");
$("#addForm").form("submit", {
url : 'companyInfoPort!uploadPic.action',
onSubmit : function() {
if ($("#addForm").form("validate"))//校验,显示上传
{
$.messager.progress({
text : "上传中"
});
}
return $("#addForm").form("validate");
},
success : function(data) {
var dataObj = eval("(" + data + ")");//转换为json对象webObj.updateDate
//赋值给图片url,页面进行了隐藏处
$('#itemlogo').val(dataObj.imgUrl);
$.messager.progress('close');
}
});
}
6.在页面上传文件时,浏览器还会弹出一个提示是否下载的提示框,如果我们不想每次下载的时候都出现这个提示框,我们可以在struts中配置如下:
text/html
(使用的是jquery - easyui 技术)。