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

下面是处理流程:

 开始--->从网页中解析出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,不过可以自已书写,也可以查看之前写的博客。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值