Fckeditor,JSP中 限制上传的大小 不同的用户上传到不同目录 限制 jsp限制上传文件类型
1、限制文件上传的大小。
2、限制不同的用户上传的文件到不同的目录。
3、限制上传后的图片的高度和宽度
4、限制上传图片或者文件的后缀名
自己在做工程的过程中,对于以上问题进行了解决,在此记录以作备份。
1、在SimpleUploaderServlet.java中
if (debug) System.out.println("--- BEGIN DOPOST ---");
response.setContentType("text/html; charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
PrintWriter out = response.getWriter();
String typeStr=request.getParameter("Type");
String currentPath=baseDir+typeStr;
String currentDirPath=getServletContext().getRealPath(currentPath);
currentPath=request.getContextPath()+currentPath;
if (debug) System.out.println(currentDirPath);
String retVal="0";
String newName="";
String fileUrl="";
String errorMessage="";
if(enabled) {
DiskFileUpload upload = new DiskFileUpload();
upload.setHeaderEncoding("utf-8");
try {
List items = upload.parseRequest(request);
Map fields=new HashMap();
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (item.isFormField())
fields.put(item.getFieldName(),item.getString());
else
fields.put(item.getFieldName(),item);
}
FileItem uplFile=(FileItem)fields.get("NewFile");
String fileNameLong=uplFile.getName();
fileNameLong=fileNameLong.replace('\','/');
String[] pathParts=fileNameLong.split("/");
String fileName=pathParts[pathParts.length-1];
//String nameWithoutExt=getNameWithoutExtension(fileName);
String ext=getExtension(fileName);
Date dt = new Date(System.currentTimeMillis());
SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS");
fileName = fmt.format(dt)+"."+ext;//取得新文件名
String nameWithoutExt=getNameWithoutExtension(fileName); //这段代码位置不能在获取新文件名前面
File pathToSave=new File(currentDirPath,fileName);
fileUrl=currentPath+"/"+fileName;
if(extIsAllowed(typeStr,ext)) {
int counter=1;
while(pathToSave.exists()){
newName=nameWithoutExt+"("+counter+")"+"."+ext;
fileUrl=currentPath+"/"+newName;
retVal="201";
pathToSave=new File(currentDirPath,newName);
counter++;
}
if(uplFile.getSize()>=1024*1024){
retVal="204";
if (debug) System.out.println("204 error");
}
uplFile.write(pathToSave);
}
else {
retVal="202";
errorMessage="";
if (debug) System.out.println("Invalid file type: " + ext);
}
}catch (Exception ex) {
if (debug) ex.printStackTrace();
retVal="203";
}
}
else {
retVal="1";
errorMessage="This file uploader is disabled. Please check the WEB-INF/web.xml file";
}
out.println("<script type="text/javascript">");
out.println("window.parent.OnUploadCompleted("+retVal+",'"+fileUrl+"','"+newName+"','"+errorMessage+"');");
out.println("</script>");
out.flush();
out.close();
if (debug) System.out.println("--- END DOPOST ---");
然后在
fckeditoreditordialogfck_imagefck_image.js
fckeditoreditordialogfck_imagefck_flash.js
fckeditoreditordialogfck_imagefck_link.js
中修改相应的错误提示。(搜索switch)
2、在ConnectorServlet.java中
修改doGet方法
///////////////////////////////////////////////////////////
response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
PrintWriter out = response.getWriter();
String commandStr=request.getParameter("Command");
String typeStr=request.getParameter("Type");
String currentFolderStr=request.getParameter("CurrentFolder");
String currentPath=baseDir+typeStr+currentFolderStr;
String currentDirPath=getServletContext().getRealPath(currentPath);
//修改文件上传的目录
String basedir = "E:\www_xndsj\upload\image";
File baseFile = new File(basedir);
if(!baseFile.exists())
{
System.out.println("Fckeditor文件存放路径错误,请修改!");
if(!baseFile.mkdir())
{
System.out.println("Fckeditor文件创建错误!");
}
}
//获取公司ID
String corp_id = (String)request.getSession().getAttribute("corp_id");
//如果不是公司修改自己的信息,默认图片路径是0
if(corp_id == null||"".equals(corp_id))
corp_id = "0" ;
//当前本地路径
currentDirPath = basedir + "/user_" + corp_id;
//修改currentPath
currentPath = "/upload/image/user_" + corp_id +"/";
//////////////////////////////////////////////
根据获取的不同的corp_id建立不同的目录
修改doPost方法
response.setContentType("text/html; charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
PrintWriter out = response.getWriter();
String commandStr=request.getParameter("Command");
String typeStr=request.getParameter("Type");
String currentFolderStr=request.getParameter("CurrentFolder");
String currentPath=baseDir+typeStr+currentFolderStr;
String currentDirPath=getServletContext().getRealPath(currentPath);
////////////////////////////////////////
//修改文件上传的目录
String basedir = "E:\www_xndsj\upload\image";
File baseFile = new File(basedir);
if(!baseFile.exists())
{
System.out.println("Fckeditor文件存放路径错误,请修改!");
if(!baseFile.mkdir())
{
System.out.println("Fckeditor文件创建错误!");
}
}
//获取公司ID
String corp_id = (String)request.getSession().getAttribute("corp_id");
//如果不是公司修改自己的信息,默认图片路径是0
if(corp_id == null||"".equals(corp_id))
corp_id = "0" ;
//当前本地路径
currentDirPath = basedir + "/user_" +corp_id;
//////////////////////////////////////////////
3、在文件fckeditor/dialog/fck_image/fck_image.js修改以下内容;
插入到function ok(){
}中
//限制宽度开始
if(!(GetE('txtWidth').value>0||GetE('txtWidth').value<750))
{
window.parent.SetSelectedTab( 'Info' ) ;
alert('图片的宽度范围为0--750,请重新输入') ;
GetE('txtWidth').value='';
GetE('txtWidth').focus() ;
return false;
}
if(GetE('txtWidth').value.length==0)
{
window.parent.SetSelectedTab( 'Info' ) ;
GetE('txtWidth').focus();
alert( '请输入图像宽度,图像宽度不能超过750' ) ;
return false ;
}
if(GetE('txtWidth').value>750)
{
window.parent.SetSelectedTab( 'Info' ) ;
alert('图片的宽度不能超过750,请重新输入') ;
GetE('txtWidth').value='';
GetE('txtWidth').focus() ;
return false;
}
if(GetE('txtWidth').value<0)
{
window.parent.SetSelectedTab( 'Info' ) ;
alert('图片的宽度不能为负,请重新输入') ;
GetE('txtWidth').value='';
GetE('txtWidth').focus() ;
return false;
}
if(GetE('txtHeight').value<0)
{
window.parent.SetSelectedTab( 'Info' ) ;
alert('图片的高度不能为负,请重新输入') ;
GetE('txtHeight').value='';
GetE('txtHeight').focus() ;
return false;
}
//限制宽度结束
4、同1.
更多阅读
绝望中诞生,怀疑中成长,希望中破灭,疯狂中死亡! 破灭的希望
绝望中诞生,怀疑中成长,希望中破灭,疯狂中死亡。 美国投资家邓普顿的一段话与大家共勉:机会总在绝望中诞生,在质疑中成长,在希望中成熟,在疯狂中死亡。 ================================ 金律1 12条人生法则 世间万
拯救地心里的防高温服装,和中钢吉炭的炭纤维有关联吧 拯救地心
前几日看了美国一部电影《拯救地心》,对里面的那个穿梭机印象深刻以外,对那些工程师穿的防护服也有很深刻的印象。耐温达4000度以上,但最后还是耐不了9000度的高温,而牺牲了一名机厂。最近一个在中钢吉炭工作的朋友谈到他们公司的股票,才
我们爱来爱去却是发现,你真正爱的人只有一个,而那在你身边的, 爱来爱去差不多
我们爱来爱去却是发现,你真正爱的人只有一个,而那在你身边的,又往往不是你真正爱的人。幻灯播放当她回顾她这一生的时候,她说:“在一起那么多年,我的丈夫从未让我觉得无聊,我相信不会有很多女人这么说。”是的,男人爱女人的最好方式,就是不
如何在QQ空间中免费上传视频 qq空间怎么上传视频
今天应女友恳求,死齐摆列得让我帮她上传可爱小侄女的生活可爱视屏,没办法,最爱的人有要求,肯定得卖力完成了。说干就干,打开她的QQ空间,发现没有上传视频这一项,然后在发表日志中有上传视频这一项,谁晓进去一瞧,嘿嘿,得升级为黄钻才行,不想花
上几张《西游记》续集中相关西海公主的剧照 西游记续集蟒蛇精剧照
上几张《西游记》续集中相关西海龙公主的剧照——缅怀英年早逝的影视新星刘丹此前曾有网友提示,想让我上传几张在《西游记》续集中饰演西海龙公主敖寸心刘丹的剧照。说实话,我之前对刘丹并不熟悉,加上在剧中她的造型不是太好看(可能是