shaochengshiji 2010-05-11 12:39
浏览 215
已采纳

使用SmartUpload做上传

我想在用户点上传图片的时候在后台给图片做水印,现在的问题是传到服务器的图片没有水印,而我本地的却有,刚好跟我需求相反,SmartUpload好像不好在上传之前对文件进行处理。
下面是代码
package com.util;

import javax.servlet.jsp.PageContext;
import com.jspsmart.upload.SmartUpload;

public class FileUpload {
public int upload(PageContext pageContext){
int result=1;
try{
//新建一个SmartUpload对象
SmartUpload su=new SmartUpload();
su.initialize(pageContext);
//限制每个上传文件的最大长度
su.setMaxFileSize(30*1024*1024);
//限制总上传文件的长度
su.setTotalMaxFileSize(100*1024*1024);
//设置允许上传的文件格式
//su.setAllowedFilesList("jpg,jpeg,gif,bmp,mp3,mid,wav,mp4,wmv,3gp,avi");
//设置禁止上传的文件格式
su.setDeniedFilesList("exe,dll,bat");
//上传文件加载到内存
su.upload();
//将上传文件保存到指定路径
//逐一提取上传文件信息,同时可保存文件
for(int i=0;i<su.getFiles().getCount();i++){
com.jspsmart.upload.File file=su.getFiles().getFile(i);
//若文件不存在则继续
if(file.isMissing())
continue;
//对图片处理
String str=file.getFilePathName();
String postfix=file.getFileExt();
if(postfix.toLowerCase().equals(".jpg")||postfix.toLowerCase().equals(".jpeg")||
postfix.toLowerCase().equals(".gif")||postfix.toLowerCase().equals(".bmp")){
//图片加水印
Watermars.pressImage("D:\logo.jpg",str.replace("\","//"),0,0,0.6f);
}
}
//上传文件到服务器
String path="/upload";
int count=su.save(path);
}catch(SecurityException ex){
result=0;
System.out.println("文件格式不正确");
}
catch(Exception ex){
ex.printStackTrace();
}
return result;
}
}

  • 写回答

2条回答 默认 最新

  • weixin_42518082 2010-05-11 15:01
    关注

    你应该对保存之后的图片添加水印..

    Watermars.pressImage("D:\logo.jpg",str.replace("\","//"),0,0,0.6f);
    这里的str是上传是的路径, 也就是客户机的文件路径,这是不对的...

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 luckysheet
  • ¥25 关于##爬虫##的问题,如何解决?:
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题