图片添加水印
2016-01-27 14:36
573 查看
/**
* 添加水印的接口
* @author navy
*/
public interface IWaterMarkService {
public static final String MARK_TEXT="源辰信息";//水印文本
public static final String FONT_NAME="微软雅黑";//水印字体
public static final int FONT_STYLE=Font.BOLD;//字体
public static final int FONT_SIZE=120;//字体大小 像素
public static final Color FONT_COLOR=Color.green;//字体颜色
public static final int X=10; //水印的X轴坐标
public static final int Y=10; //水印的Y轴坐标
public static float ALPHA=0.5F; //透明度
public static final String LOGO="../logo/logo.gif";
/**
* 添加水印
* @param pic:要添加水印的图片
* @param picFileName:图片的名称
* @param uploadPath:图片上传到相对路径
* @param realUploadPath:图片上传到绝对路径
* @return:添加完水印后的图片路径
*/
public String waterMark(File pic,String picFileName,String uploadPath,String realUploadPath);
}
右下角文字水印
/**
* 添加文本水印
* @author navy
*/
public class TextWaterMarkServiceImpl implements IWaterMarkService{
@Override
public String waterMark(File pic, String picFileName, String uploadPath, String realUploadPath) {
FileOutputStream fos=null; //将内存中的图片写出到磁盘
String newFileName = ""; //添加水印后的图片
try {
Image image=ImageIO.read(pic); //获取图片信息
int width=image.getWidth(null);//获取图片的大小
int height=image.getHeight(null);//获取图片的大小
//1.创建图片缓存对象 高度、宽度和图片颜色
BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
//2.创建Java绘图工具对象
Graphics2D gp=bufferedImage.createGraphics();
/*
* 3.使用绘图工具对象将原图绘制到缓存图片对象
* 绘制图片 要绘制的图片对象 绘制的开始坐标(跟原图一样,所以都是0)
* 绘制图片的高度和宽度
*/
gp.drawImage(image,0,0,width,height,null);
//4.添加文字水印
//(1)设置显示文本的样式
gp.setFont(new Font(FONT_NAME,FONT_STYLE,FONT_SIZE));
//(2)设置显示文本的颜色
gp.setColor(FONT_COLOR);
//(3)计算文本的显示位置
int x=width-FONT_SIZE*getTextLength(MARK_TEXT);
int y=height-FONT_SIZE;
//(4)设置透明度
gp.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,ALPHA));
//(5)绘制文本水印
gp.drawString(MARK_TEXT,x,y+FONT_SIZE);
//(6)释放工具
gp.dispose();
//5.创建图像编码工具类,对图片对象进行编码处理 JPEGImageEncoder
newFileName="text_"+picFileName;
fos=new FileOutputStream(realUploadPath+"/"+newFileName);
JPEGImageEncoder jie=JPEGCodec.createJPEGEncoder(fos);
//6.使用图像编码工具类,输出缓存图像到目标图片文件
jie.encode(bufferedImage);
} catch (IOException e) {
e.printStackTrace();
} finally{
//7.关闭流
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return uploadPath+"/"+newFileName;
}
/**
* 计算文本的长度
* 如果是中文则就是文本长度值,如果是英文或数字,则是一半其长度的一半
* 两个英文的长度跟一个汉字的长度一样
* @param text:要计算的文本
* @return
*/
public int getTextLength(String text){
int length=text.length();
String temp;
for(int i=0;i<text.length();i++){
temp=String.valueOf(text.charAt(i));
if(temp.getBytes().length>1){ //如果是汉字,则加1
length++;
}
}
length=length%2==0?length/2:length/2+1;
return length;
}
}
右下角添加图片水印
/**
* 添加图片水印
* @author navy
*/
public class ImageWaterMarkServiceImpl implements IWaterMarkService{
@Override
public String waterMark(File pic, String picFileName, String uploadPath, String realUploadPath) {
FileOutputStream fos=null; //将内存中的图片写出到磁盘
String newFileName = ""; //添加水印后的图片
try {
Image image=ImageIO.read(pic); //获取图片信息
int width=image.getWidth(null);//获取图片的大小
int height=image.getHeight(null);//获取图片的大小
//1.创建图片缓存对象 高度、宽度和图片颜色
BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
//2.创建Java绘图工具对象
Graphics2D gp=bufferedImage.createGraphics();
/*
* 3.使用绘图工具对象将原图绘制到缓存图片对象
* 绘制图片 要绘制的图片对象 绘制的开始坐标(跟原图一样,所以都是0)
* 绘制图片的高度和宽度
*/
gp.drawImage(image,0,0,width,height,null);
//4.添加图片水印
//(1)获取水印图片路径
String logoPath=realUploadPath+"/"+LOGO;
//(2)创建文件对象,去指向这个文件
File logo=new File(logoPath);
//(3)使用Image这个类去操作这个文件
Image imageLogo=ImageIO.read(logo);
//(4)计算文本的显示位置
int x=width-imageLogo.getWidth(null);
int y=height-imageLogo.getHeight(null);
//(5)设置透明度
gp.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,ALPHA));
//(6)绘制文本水印
gp.drawImage(imageLogo,x,y,null);
//(7)释放工具
gp.dispose();
//5.创建图像编码工具类,对图片对象进行编码处理 JPEGImageEncoder
newFileName="logo_"+picFileName;
fos=new FileOutputStream(realUploadPath+"/"+newFileName);
JPEGImageEncoder jie=JPEGCodec.createJPEGEncoder(fos);
//6.使用图像编码工具类,输出缓存图像到目标图片文件
jie.encode(bufferedImage);
} catch (IOException e) {
e.printStackTrace();
} finally{
//7.关闭流
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return uploadPath+"/"+newFileName;
}
}
添加多文本水印
/**
* 添加多文本水印
* @author navy
*/
public class TextMoreWaterMarkServiceImpl implements IWaterMarkService{
@Override
public String waterMark(File pic, String picFileName, String uploadPath, String realUploadPath) {
FileOutputStream fos=null; //将内存中的图片写出到磁盘
String newFileName = ""; //添加水印后的图片
try {
Image image=ImageIO.read(pic); //获取图片信息
int width=image.getWidth(null);//获取图片的大小
int height=image.getHeight(null);//获取图片的大小
//1.创建图片缓存对象 高度、宽度和图片颜色
BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
//2.创建Java绘图工具对象
Graphics2D gp=bufferedImage.createGraphics();
/*
* 3.使用绘图工具对象将原图绘制到缓存图片对象
* 绘制图片 要绘制的图片对象 绘制的开始坐标(跟原图一样,所以都是0)
* 绘制图片的高度和宽度
*/
gp.drawImage(image,0,0,width,height,null);
//4.添加文字水印
//(1)设置显示文本的样式
gp.setFont(new Font(FONT_NAME,FONT_STYLE,FONT_SIZE));
//(2)设置显示文本的颜色
gp.setColor(FONT_COLOR);
//(3)计算文本的大小
int textWidth=FONT_SIZE*getTextLength(MARK_TEXT);
int textHeight=FONT_SIZE;
//(4)设置透明度
gp.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,ALPHA));
//(5)旋转图片 将角度转换为弧度 然后是旋转的中心
gp.rotate(Math.toRadians(30),bufferedImage.getWidth()/2,bufferedImage.getHeight()/2);
//(6)设置绘制坐标的起始值
int x=-width/2; //向左移动一半
int y=-height/2; //向上移动一半
//(7)循环绘制文本水印,此时绘制的区域会增大,我们这里直接扩大一倍
while(x<width*1.5){
y=-height/2; //y坐标要重置,以保证从上往下的添加
while(y<height*1.5){
gp.drawString(MARK_TEXT,x,y);//添加水印
y+=textHeight+200;
}
x+=textWidth+200; //200为文字与文字之间的间距
}
//(8)释放工具
gp.dispose();
//5.创建图像编码工具类,对图片对象进行编码处理 JPEGImageEncoder
newFileName="textmore_"+picFileName;
fos=new FileOutputStream(realUploadPath+"/"+newFileName);
JPEGImageEncoder jie=JPEGCodec.createJPEGEncoder(fos);
//6.使用图像编码工具类,输出缓存图像到目标图片文件
jie.encode(bufferedImage);
} catch (IOException e) {
e.printStackTrace();
} finally{
//7.关闭流
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return uploadPath+"/"+newFileName;
}
/**
* 计算文本的长度
* 如果是中文则就是文本长度值,如果是英文或数字,则是一半其长度的一半
* 两个英文的长度跟一个汉字的长度一样
* @param text:要计算的文本
* @return
*/
public int getTextLength(String text){
int length=text.length();
String temp;
for(int i=0;i<text.length();i++){
temp=String.valueOf(text.charAt(i));
if(temp.getBytes().length>1){ //如果是汉字,则加1
length++;
}
}
length=length%2==0?length/2:length/2+1;
return length;
}
}
添加多图片水印
/**
* 添加图片水印
* @author navy
*/
public class ImageMoreWaterMarkServiceImpl implements IWaterMarkService{
@Override
public String waterMark(File pic, String picFileName, String uploadPath, String realUploadPath) {
FileOutputStream fos=null; //将内存中的图片写出到磁盘
String newFileName = ""; //添加水印后的图片
try {
Image image=ImageIO.read(pic); //获取图片信息
int width=image.getWidth(null);//获取图片的大小
int height=image.getHeight(null);//获取图片的大小
//1.创建图片缓存对象 高度、宽度和图片颜色
BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
//2.创建Java绘图工具对象
Graphics2D gp=bufferedImage.createGraphics();
/*
* 3.使用绘图工具对象将原图绘制到缓存图片对象
* 绘制图片 要绘制的图片对象 绘制的开始坐标(跟原图一样,所以都是0)
* 绘制图片的高度和宽度
*/
gp.drawImage(image,0,0,width,height,null);
//4.添加图片水印
//(1)获取水印图片路径
String logoPath=realUploadPath+"/"+LOGO;
//(2)创建文件对象,去指向这个文件
File logo=new File(logoPath);
//(3)使用Image这个类去操作这个文件
Image imageLogo=ImageIO.read(logo);
//(4)计算图片水印的大小
int imageWidth=imageLogo.getWidth(null);
int imageHeight=imageLogo.getHeight(null);
//(5)设置透明度
gp.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,ALPHA));
//(6)旋转图片 将角度转换为弧度 然后是旋转的中心
gp.rotate(Math.toRadians(30),bufferedImage.getWidth()/2,bufferedImage.getHeight()/2);
//(7)设置绘制坐标的起始值
int x=-width/2; //向左移动一半
int y=-height/2; //向上移动一半
//(8)循环绘制文本水印,此时绘制的区域会增大,我们这里直接扩大一倍
while(x<width*1.5){
y=-height/2; //y坐标要重置,以保证从上往下的添加
while(y<height*1.5){
gp.drawImage(imageLogo,x,y,null);
y+=imageWidth+300;
}
x+=imageHeight+300; //300为文字与文字之间的间距
}
//(9)释放工具
gp.dispose();
//5.创建图像编码工具类,对图片对象进行编码处理 JPEGImageEncoder
newFileName="logomore_"+picFileName;
fos=new FileOutputStream(realUploadPath+"/"+newFileName);
JPEGImageEncoder jie=JPEGCodec.createJPEGEncoder(fos);
//6.使用图像编码工具类,输出缓存图像到目标图片文件
jie.encode(bufferedImage);
} catch (IOException e) {
e.printStackTrace();
} finally{
//7.关闭流
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return uploadPath+"/"+newFileName;
}
}
参考慕课网教程
* 添加水印的接口
* @author navy
*/
public interface IWaterMarkService {
public static final String MARK_TEXT="源辰信息";//水印文本
public static final String FONT_NAME="微软雅黑";//水印字体
public static final int FONT_STYLE=Font.BOLD;//字体
public static final int FONT_SIZE=120;//字体大小 像素
public static final Color FONT_COLOR=Color.green;//字体颜色
public static final int X=10; //水印的X轴坐标
public static final int Y=10; //水印的Y轴坐标
public static float ALPHA=0.5F; //透明度
public static final String LOGO="../logo/logo.gif";
/**
* 添加水印
* @param pic:要添加水印的图片
* @param picFileName:图片的名称
* @param uploadPath:图片上传到相对路径
* @param realUploadPath:图片上传到绝对路径
* @return:添加完水印后的图片路径
*/
public String waterMark(File pic,String picFileName,String uploadPath,String realUploadPath);
}
右下角文字水印
/**
* 添加文本水印
* @author navy
*/
public class TextWaterMarkServiceImpl implements IWaterMarkService{
@Override
public String waterMark(File pic, String picFileName, String uploadPath, String realUploadPath) {
FileOutputStream fos=null; //将内存中的图片写出到磁盘
String newFileName = ""; //添加水印后的图片
try {
Image image=ImageIO.read(pic); //获取图片信息
int width=image.getWidth(null);//获取图片的大小
int height=image.getHeight(null);//获取图片的大小
//1.创建图片缓存对象 高度、宽度和图片颜色
BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
//2.创建Java绘图工具对象
Graphics2D gp=bufferedImage.createGraphics();
/*
* 3.使用绘图工具对象将原图绘制到缓存图片对象
* 绘制图片 要绘制的图片对象 绘制的开始坐标(跟原图一样,所以都是0)
* 绘制图片的高度和宽度
*/
gp.drawImage(image,0,0,width,height,null);
//4.添加文字水印
//(1)设置显示文本的样式
gp.setFont(new Font(FONT_NAME,FONT_STYLE,FONT_SIZE));
//(2)设置显示文本的颜色
gp.setColor(FONT_COLOR);
//(3)计算文本的显示位置
int x=width-FONT_SIZE*getTextLength(MARK_TEXT);
int y=height-FONT_SIZE;
//(4)设置透明度
gp.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,ALPHA));
//(5)绘制文本水印
gp.drawString(MARK_TEXT,x,y+FONT_SIZE);
//(6)释放工具
gp.dispose();
//5.创建图像编码工具类,对图片对象进行编码处理 JPEGImageEncoder
newFileName="text_"+picFileName;
fos=new FileOutputStream(realUploadPath+"/"+newFileName);
JPEGImageEncoder jie=JPEGCodec.createJPEGEncoder(fos);
//6.使用图像编码工具类,输出缓存图像到目标图片文件
jie.encode(bufferedImage);
} catch (IOException e) {
e.printStackTrace();
} finally{
//7.关闭流
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return uploadPath+"/"+newFileName;
}
/**
* 计算文本的长度
* 如果是中文则就是文本长度值,如果是英文或数字,则是一半其长度的一半
* 两个英文的长度跟一个汉字的长度一样
* @param text:要计算的文本
* @return
*/
public int getTextLength(String text){
int length=text.length();
String temp;
for(int i=0;i<text.length();i++){
temp=String.valueOf(text.charAt(i));
if(temp.getBytes().length>1){ //如果是汉字,则加1
length++;
}
}
length=length%2==0?length/2:length/2+1;
return length;
}
}
右下角添加图片水印
/**
* 添加图片水印
* @author navy
*/
public class ImageWaterMarkServiceImpl implements IWaterMarkService{
@Override
public String waterMark(File pic, String picFileName, String uploadPath, String realUploadPath) {
FileOutputStream fos=null; //将内存中的图片写出到磁盘
String newFileName = ""; //添加水印后的图片
try {
Image image=ImageIO.read(pic); //获取图片信息
int width=image.getWidth(null);//获取图片的大小
int height=image.getHeight(null);//获取图片的大小
//1.创建图片缓存对象 高度、宽度和图片颜色
BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
//2.创建Java绘图工具对象
Graphics2D gp=bufferedImage.createGraphics();
/*
* 3.使用绘图工具对象将原图绘制到缓存图片对象
* 绘制图片 要绘制的图片对象 绘制的开始坐标(跟原图一样,所以都是0)
* 绘制图片的高度和宽度
*/
gp.drawImage(image,0,0,width,height,null);
//4.添加图片水印
//(1)获取水印图片路径
String logoPath=realUploadPath+"/"+LOGO;
//(2)创建文件对象,去指向这个文件
File logo=new File(logoPath);
//(3)使用Image这个类去操作这个文件
Image imageLogo=ImageIO.read(logo);
//(4)计算文本的显示位置
int x=width-imageLogo.getWidth(null);
int y=height-imageLogo.getHeight(null);
//(5)设置透明度
gp.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,ALPHA));
//(6)绘制文本水印
gp.drawImage(imageLogo,x,y,null);
//(7)释放工具
gp.dispose();
//5.创建图像编码工具类,对图片对象进行编码处理 JPEGImageEncoder
newFileName="logo_"+picFileName;
fos=new FileOutputStream(realUploadPath+"/"+newFileName);
JPEGImageEncoder jie=JPEGCodec.createJPEGEncoder(fos);
//6.使用图像编码工具类,输出缓存图像到目标图片文件
jie.encode(bufferedImage);
} catch (IOException e) {
e.printStackTrace();
} finally{
//7.关闭流
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return uploadPath+"/"+newFileName;
}
}
添加多文本水印
/**
* 添加多文本水印
* @author navy
*/
public class TextMoreWaterMarkServiceImpl implements IWaterMarkService{
@Override
public String waterMark(File pic, String picFileName, String uploadPath, String realUploadPath) {
FileOutputStream fos=null; //将内存中的图片写出到磁盘
String newFileName = ""; //添加水印后的图片
try {
Image image=ImageIO.read(pic); //获取图片信息
int width=image.getWidth(null);//获取图片的大小
int height=image.getHeight(null);//获取图片的大小
//1.创建图片缓存对象 高度、宽度和图片颜色
BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
//2.创建Java绘图工具对象
Graphics2D gp=bufferedImage.createGraphics();
/*
* 3.使用绘图工具对象将原图绘制到缓存图片对象
* 绘制图片 要绘制的图片对象 绘制的开始坐标(跟原图一样,所以都是0)
* 绘制图片的高度和宽度
*/
gp.drawImage(image,0,0,width,height,null);
//4.添加文字水印
//(1)设置显示文本的样式
gp.setFont(new Font(FONT_NAME,FONT_STYLE,FONT_SIZE));
//(2)设置显示文本的颜色
gp.setColor(FONT_COLOR);
//(3)计算文本的大小
int textWidth=FONT_SIZE*getTextLength(MARK_TEXT);
int textHeight=FONT_SIZE;
//(4)设置透明度
gp.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,ALPHA));
//(5)旋转图片 将角度转换为弧度 然后是旋转的中心
gp.rotate(Math.toRadians(30),bufferedImage.getWidth()/2,bufferedImage.getHeight()/2);
//(6)设置绘制坐标的起始值
int x=-width/2; //向左移动一半
int y=-height/2; //向上移动一半
//(7)循环绘制文本水印,此时绘制的区域会增大,我们这里直接扩大一倍
while(x<width*1.5){
y=-height/2; //y坐标要重置,以保证从上往下的添加
while(y<height*1.5){
gp.drawString(MARK_TEXT,x,y);//添加水印
y+=textHeight+200;
}
x+=textWidth+200; //200为文字与文字之间的间距
}
//(8)释放工具
gp.dispose();
//5.创建图像编码工具类,对图片对象进行编码处理 JPEGImageEncoder
newFileName="textmore_"+picFileName;
fos=new FileOutputStream(realUploadPath+"/"+newFileName);
JPEGImageEncoder jie=JPEGCodec.createJPEGEncoder(fos);
//6.使用图像编码工具类,输出缓存图像到目标图片文件
jie.encode(bufferedImage);
} catch (IOException e) {
e.printStackTrace();
} finally{
//7.关闭流
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return uploadPath+"/"+newFileName;
}
/**
* 计算文本的长度
* 如果是中文则就是文本长度值,如果是英文或数字,则是一半其长度的一半
* 两个英文的长度跟一个汉字的长度一样
* @param text:要计算的文本
* @return
*/
public int getTextLength(String text){
int length=text.length();
String temp;
for(int i=0;i<text.length();i++){
temp=String.valueOf(text.charAt(i));
if(temp.getBytes().length>1){ //如果是汉字,则加1
length++;
}
}
length=length%2==0?length/2:length/2+1;
return length;
}
}
添加多图片水印
/**
* 添加图片水印
* @author navy
*/
public class ImageMoreWaterMarkServiceImpl implements IWaterMarkService{
@Override
public String waterMark(File pic, String picFileName, String uploadPath, String realUploadPath) {
FileOutputStream fos=null; //将内存中的图片写出到磁盘
String newFileName = ""; //添加水印后的图片
try {
Image image=ImageIO.read(pic); //获取图片信息
int width=image.getWidth(null);//获取图片的大小
int height=image.getHeight(null);//获取图片的大小
//1.创建图片缓存对象 高度、宽度和图片颜色
BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
//2.创建Java绘图工具对象
Graphics2D gp=bufferedImage.createGraphics();
/*
* 3.使用绘图工具对象将原图绘制到缓存图片对象
* 绘制图片 要绘制的图片对象 绘制的开始坐标(跟原图一样,所以都是0)
* 绘制图片的高度和宽度
*/
gp.drawImage(image,0,0,width,height,null);
//4.添加图片水印
//(1)获取水印图片路径
String logoPath=realUploadPath+"/"+LOGO;
//(2)创建文件对象,去指向这个文件
File logo=new File(logoPath);
//(3)使用Image这个类去操作这个文件
Image imageLogo=ImageIO.read(logo);
//(4)计算图片水印的大小
int imageWidth=imageLogo.getWidth(null);
int imageHeight=imageLogo.getHeight(null);
//(5)设置透明度
gp.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,ALPHA));
//(6)旋转图片 将角度转换为弧度 然后是旋转的中心
gp.rotate(Math.toRadians(30),bufferedImage.getWidth()/2,bufferedImage.getHeight()/2);
//(7)设置绘制坐标的起始值
int x=-width/2; //向左移动一半
int y=-height/2; //向上移动一半
//(8)循环绘制文本水印,此时绘制的区域会增大,我们这里直接扩大一倍
while(x<width*1.5){
y=-height/2; //y坐标要重置,以保证从上往下的添加
while(y<height*1.5){
gp.drawImage(imageLogo,x,y,null);
y+=imageWidth+300;
}
x+=imageHeight+300; //300为文字与文字之间的间距
}
//(9)释放工具
gp.dispose();
//5.创建图像编码工具类,对图片对象进行编码处理 JPEGImageEncoder
newFileName="logomore_"+picFileName;
fos=new FileOutputStream(realUploadPath+"/"+newFileName);
JPEGImageEncoder jie=JPEGCodec.createJPEGEncoder(fos);
//6.使用图像编码工具类,输出缓存图像到目标图片文件
jie.encode(bufferedImage);
} catch (IOException e) {
e.printStackTrace();
} finally{
//7.关闭流
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return uploadPath+"/"+newFileName;
}
}
参考慕课网教程
相关文章推荐
- iOS平台XML解析类库对比和安装说明
- 通过视图更新基本表中的数据的条件
- Homebrew
- 无JavaScript实现选项卡轮转切换效果
- Hibernate3升级到Hibernate4后的修改点
- SRM 678(div2)
- RESTEasy常用部署方式和配置
- RESTEasy中JSON适配器Jackson & Jettision JAXB
- 访问vmware server 2的问题
- RESTEasy通过接口管理配置
- 学习Linux的版本选择--个人实践体会心得
- 函数的声明和表达式
- RESTEasy通过ApacheAPI或JavaAPI进行TEXT、XML、JSON数据交换
- RESTEasy通过TEXT、XML、JSON进行数据交换
- RESTEasy使用总结
- RESTEasy之间交互之Post和Get
- Mac版Android Studio工具快捷键总结
- 笨方法学python(ex18--40)--read,seek,help,exit
- RESTEasy数据自动装配之@QueryParam
- Linux centos 目录结构