您的位置:首页 > 编程语言 > Java开发

JAVA实现图片下载至本地,处理后,再上传FTP

2012-09-19 10:27 866 查看
下面是处理流程:

开始--->从网页中解析出IMG图片地址--->下载至本地-->缩放处理图片--->加上水印效果

----->上传至FTP--->存储完成后给出回馈信息---->结束

下面是代码实现:

//在线图片地址:
String sourceFilePath = "http://m2.img.libdd.com/farm5/2012/0914/11/BB0C1C675286CF6D30A23F5C96EB07FDA5D0FE05049E_314_460.JPEG";

//组装HTML代码片段
String destImgPath = ParseImgUtils.testUseEx(sourceFilePath);

//文件名
String filename =  "E:\\ftpPath\\hello.jpg";

//下载至本地
try {
URLConnectionDownloader.download(destImgPath,  filename);
} catch (Exception e) {
e.printStackTrace();
}

//按指定长度,宽度缩放图片大小
JPGTransformer  jpgTransformer = new JPGTransformer();
String filename2  =  "E:\\ftpPath\\hello_new.jpg";
try {
//注意:真正上传的是缩放后的文件
jpgTransformer.transform2(filename, filename2, 500, 400);

} catch (Exception e1) {
e1.printStackTrace();
}

//在這里添加水印效果
MarkPicture.pressText("中科院軟件所",  filename2, "宋体", 1, 1, 25, 5, 5);

//延时1秒以执行之后的操作
try {
Thread.currentThread();
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}

//上传至FTP地址
FtpUpload ftpUpload = new FtpUpload("*****", "***", "***");
File file = new File(filename2);

String   destFileName   =   file.getName();
//	String   FileName   =   s.subString(lastIndexOf("\"), FullFileName.length);

//String fileString2 = filename.substring(filename.lastIndexOf("\\") + 1, filename.length() );

//通過時間生成隨機不重復的文件名
destFileName = RandomFileName.createFileNameByDate()+".jpg";
//destFileName = RandomFileName.uuidFileName();

//输入流定义
InputStream in = null;
try {
in = new FileInputStream(file);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}

//設置上傳的FTP目錄
String ftpPath = "download";

//设定文件名和目录
if(ftpUpload.upMyFile(destFileName , in,  ftpPath) == true){
System.out.println("图片文件上传至FTP服务器已成功! ");
//设定反馈信息

//文件上傳成功了后,記得將上傳的文件同之前的原始數據聯系起來
String destFilePath = ftpUpload.getFtpFilePath(ftpPath, destFileName);

//soureFilePath同destFilePath聯系起來,具體使用算法,我這里只做簡單的關聯(用map鍵值對),后面可以用數據庫方式,文件存儲方式,內存方式
Map<String, String> relateMap = new TreeMap<String, String>();
relateMap.put(sourceFilePath, destFilePath);

ImageUrl url =new ImageUrl();
url.setDestFilePath(destFilePath);
url.setSourceFilePath(sourceFilePath);

//添加一个别识码,全球唯一
url.setFlag(destFileName);

//将数据存入数据库
DBConn  db = new DBConn();
db.saveToDb(url);

}else{
System.out.println("图片文件上传至FTP服务器失敗,請重試或聯系管理員! ");
}


上面还用到其他操作相关API,不过可以自已书写,也可以查看之前写的博客。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: