只剩下60分,大家帮下忙package com.webapp.model.service.impl;import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;import javax.imageio.ImageIO;
import javax.jws.WebService;import org.directwebremoting.annotations.Param;
import org.directwebremoting.annotations.RemoteMethod;
import org.directwebremoting.annotations.RemoteProxy;
import org.directwebremoting.spring.SpringCreator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.webapp.model.businessobject.Errorfeedback;
import com.webapp.model.dao.ErrorfeedbackDao;
import com.webapp.model.service.ErrorfeedbackService;
import com.webapp.model.service.GridJsonDataService;
import com.webapp.model.service.UsersService;
import com.webapp.model.service.UtilService;
import com.webapp.util.GuidCreator;
@Service
@WebService(endpointInterface = "com.webapp.model.service.ErrorfeedbackService")
@RemoteProxy(creator = SpringCreator.class, creatorParams = @Param(name = "beanName", value = "errorfeedbackServiceImpl"), name = "ErrorfeedbackService")public class ErrorfeedbackServiceImpl implements ErrorfeedbackService {
@Autowired
private ErrorfeedbackDao errorfeedbackDao;
@Autowired
private UsersService usersService;
@Autowired
private UtilService utilService;
@RemoteMethod
public String saveErrorfeedback(Errorfeedback errorfeedback){
GuidCreator guid = new GuidCreator();
String typeStr = errorfeedback.getPicture().substring(errorfeedback.getPicture().lastIndexOf(".")+1);
if(!"jpg".equals(typeStr) && !"png".equals(typeStr) && !"gif".equals(typeStr) && !"bmp".equals(typeStr)){
return "typeError";
}else{
// errorfeedback.setPicture(errorfeedback.getPicture().substring(errorfeedback.getPicture().lastIndexOf("\\")));
System.out.println("图片路径:"+errorfeedback.getPicture());
System.out.println("E:\\testCreateImg");
String picPath = "";
try {
picPath = LoadImageToServer(errorfeedback.getPicture(),"E:\\testCreateImg");
if(picPath != null && !"".equals(picPath)){
errorfeedback.setPicture(picPath);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
errorfeedback.setGid(guid.createNewGuid(3));
errorfeedback.setSubmitby(utilService.getCurrentUser().getGid());
errorfeedback.setSubmitTime(new Date());
// try {
// Image image = ImageIO.read(new File(errorfeedback.getPicture()));
// errorfeedback.setPicture(new String(imageToBytes(image, "jpg")));
// } catch (Exception e) {
// // TODO: handle exception
// }
this.errorfeedbackDao.save(errorfeedback);
return "true";
}
public String LoadImageToServer(String filePath,String serverPath) throws Exception {
String resultPath = ""; //上传后图片所在的路径
FileOutputStream out = null; //文件输出流
try { //验证图片上传的格式是否正确
File f = new File(filePath);
if (!f.isFile()) {
throw new Exception(" 不是图片文件!");
}
if (f != null && f.exists()) { //这里的ImageIO属于java工厂类,在工厂类class里面,调用的System.gc(),频繁调用会造成dump,需要考虑优化
BufferedImage image = ImageIO.read(f); // 读入文件
if (image != null) {
BufferedImage tag = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB); //构造一个类型为预定义图像类型之一的 BufferedImage
tag.getGraphics().drawImage(image, 0, 0, image.getWidth(), image.getHeight(), null); //绘制所需要尺寸大小的图片
/*
* 以下生成图片上传后在服务器上的新路径
*/
int lastLength = filePath.lastIndexOf(".");
Date date = new Date(System.currentTimeMillis());
String strDate = new SimpleDateFormat("yyyyMMddhhmmss").format(date);
int random = (int)(Math.random()*99);
String imageName = strDate + random; //以系统时间来随机的创建图片文件名
String fileType = filePath.substring(lastLength); //获取上传图片的类型
resultPath = serverPath + "\\" + imageName + fileType;
/*
* 进行图片的绘制
*/
out = new FileOutputStream(resultPath);
//下面的代码下边都有黄线不知道和这个有没有关系……………………
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param =
encoder.getDefaultJPEGEncodeParam(tag);
param.setQuality(0.95f, true); //95%图像
param.setDensityUnit(1); //像素尺寸单位.像素/英寸
param.setXDensity(300); //水平分辨率
param.setYDensity(300); //垂直分辨率
encoder.setJPEGEncodeParam(param);
encoder.encode(tag);
tag = null;
}
}
f = null;
} catch (Exception ex) {
ex.printStackTrace();
} finally {
out.close();
out = null;
}
return resultPath;
}
}
import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;import javax.imageio.ImageIO;
import javax.jws.WebService;import org.directwebremoting.annotations.Param;
import org.directwebremoting.annotations.RemoteMethod;
import org.directwebremoting.annotations.RemoteProxy;
import org.directwebremoting.spring.SpringCreator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.webapp.model.businessobject.Errorfeedback;
import com.webapp.model.dao.ErrorfeedbackDao;
import com.webapp.model.service.ErrorfeedbackService;
import com.webapp.model.service.GridJsonDataService;
import com.webapp.model.service.UsersService;
import com.webapp.model.service.UtilService;
import com.webapp.util.GuidCreator;
@Service
@WebService(endpointInterface = "com.webapp.model.service.ErrorfeedbackService")
@RemoteProxy(creator = SpringCreator.class, creatorParams = @Param(name = "beanName", value = "errorfeedbackServiceImpl"), name = "ErrorfeedbackService")public class ErrorfeedbackServiceImpl implements ErrorfeedbackService {
@Autowired
private ErrorfeedbackDao errorfeedbackDao;
@Autowired
private UsersService usersService;
@Autowired
private UtilService utilService;
@RemoteMethod
public String saveErrorfeedback(Errorfeedback errorfeedback){
GuidCreator guid = new GuidCreator();
String typeStr = errorfeedback.getPicture().substring(errorfeedback.getPicture().lastIndexOf(".")+1);
if(!"jpg".equals(typeStr) && !"png".equals(typeStr) && !"gif".equals(typeStr) && !"bmp".equals(typeStr)){
return "typeError";
}else{
// errorfeedback.setPicture(errorfeedback.getPicture().substring(errorfeedback.getPicture().lastIndexOf("\\")));
System.out.println("图片路径:"+errorfeedback.getPicture());
System.out.println("E:\\testCreateImg");
String picPath = "";
try {
picPath = LoadImageToServer(errorfeedback.getPicture(),"E:\\testCreateImg");
if(picPath != null && !"".equals(picPath)){
errorfeedback.setPicture(picPath);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
errorfeedback.setGid(guid.createNewGuid(3));
errorfeedback.setSubmitby(utilService.getCurrentUser().getGid());
errorfeedback.setSubmitTime(new Date());
// try {
// Image image = ImageIO.read(new File(errorfeedback.getPicture()));
// errorfeedback.setPicture(new String(imageToBytes(image, "jpg")));
// } catch (Exception e) {
// // TODO: handle exception
// }
this.errorfeedbackDao.save(errorfeedback);
return "true";
}
public String LoadImageToServer(String filePath,String serverPath) throws Exception {
String resultPath = ""; //上传后图片所在的路径
FileOutputStream out = null; //文件输出流
try { //验证图片上传的格式是否正确
File f = new File(filePath);
if (!f.isFile()) {
throw new Exception(" 不是图片文件!");
}
if (f != null && f.exists()) { //这里的ImageIO属于java工厂类,在工厂类class里面,调用的System.gc(),频繁调用会造成dump,需要考虑优化
BufferedImage image = ImageIO.read(f); // 读入文件
if (image != null) {
BufferedImage tag = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB); //构造一个类型为预定义图像类型之一的 BufferedImage
tag.getGraphics().drawImage(image, 0, 0, image.getWidth(), image.getHeight(), null); //绘制所需要尺寸大小的图片
/*
* 以下生成图片上传后在服务器上的新路径
*/
int lastLength = filePath.lastIndexOf(".");
Date date = new Date(System.currentTimeMillis());
String strDate = new SimpleDateFormat("yyyyMMddhhmmss").format(date);
int random = (int)(Math.random()*99);
String imageName = strDate + random; //以系统时间来随机的创建图片文件名
String fileType = filePath.substring(lastLength); //获取上传图片的类型
resultPath = serverPath + "\\" + imageName + fileType;
/*
* 进行图片的绘制
*/
out = new FileOutputStream(resultPath);
//下面的代码下边都有黄线不知道和这个有没有关系……………………
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param =
encoder.getDefaultJPEGEncodeParam(tag);
param.setQuality(0.95f, true); //95%图像
param.setDensityUnit(1); //像素尺寸单位.像素/英寸
param.setXDensity(300); //水平分辨率
param.setYDensity(300); //垂直分辨率
encoder.setJPEGEncodeParam(param);
encoder.encode(tag);
tag = null;
}
}
f = null;
} catch (Exception ex) {
ex.printStackTrace();
} finally {
out.close();
out = null;
}
return resultPath;
}
}
解决方案 »
- 程序连接数据库报sa不能登录,请帮忙
- 求助!动态预选checkbox
- Spring + iBatis的朋友请进
- jbpm 怎样执行当前的任务
- 请大家推荐一个性价比比较好的J2EE空间,能支持SSH,如果有免费的更好.....不过那是没可能啦。谢谢大家啦~~~~~~~~~~~
- SAX解析xml DTD验证问题 (急急急急急急急!!!)
- Hibernate3.0调试问题。在线等,急
- 我用weblogic8部署实体bean(cmp)的时候出现了下面的错误,请教怎么解决呢?
- tomcat5的配置问题(端口号为8000)
- 如何在视图上建实体EJB?
- struts2连接数据库时报错,Detected AnnotationActionValidatorManager, initializing it...
- Failed to read input解决方案
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.List;
import java.util.UUID;import javax.ejb.Stateless;
import org.jboss.seam.annotations.Name;
import org.richfaces.event.UploadEvent;
import org.richfaces.model.UploadItem;/**
*
* @author XCJ
*/
@Name("fileUpload")
public class FileUpload implements java.io.Serializable{
private String filename;
public String uploadListener(String BasePath,UploadEvent event) {
List itemList = event.getUploadItems();
for(int i=0 ; i<itemList.size() ; i++){
try {
UploadItem item = (UploadItem) itemList.get(i);
this.filename=UUID.randomUUID().toString()+item.getFileName();
File file = new File(BasePath+this.filename);
//文件大小不能超过4M
if(item.getFileSize() <= 4000000)
{
FileInputStream fis = new FileInputStream(item.getFile());
System.out.print("获取的文件名称为:::"+item.getFileName());
FileOutputStream out = new FileOutputStream(file);
int bytes = 0;
byte[] bteFile = new byte[1024];
while ((bytes = fis.read(bteFile)) != -1)
{
out.write(bteFile, 0, bytes);
}
fis.close();
out.close();
}
}
catch (Exception e)
{
System.out.print("出现错误:::::"+e.getMessage());
}
}
return this.filename;
}
}
UploadEvent、UploadItem都无法导入?我用的Myeclipse开发的,你用的是Jboss么?在我这里好像不能用啊!
if (!f.isFile()) {
throw new Exception(" 不是图片文件!");
}
在执行到if (!f.isFile()) { 这里的时候就抛出异常了,但是我上传的的确是图片文件啊……
当且仅当此抽象路径名表示的文件存在且 是一个标准文件时,返回 true;否则返回 false
你的文件没存在呢
后台获取输入流就OK了