誰が115個のリソースを販売微信

[テン魏:PPS33Aの整合性管理は] [] [継続的に更新]

説明:公共の数字によって取得されたURLの内容を、テキストは通常​​のことができますが、クロスドメインアクセスの問題の写真がありますが、マイクロチャネルの数は、クロスドメインアクセス公共イメージを許可していない、それがローカルに保存されているピクチャ番号から公開する必要があり、その後、OSSにアップロードその後、HTML内の画像は、その上にすべての彼らのOSSアドレスを交換します

 

ここでは、バックグラウンドでHTML DOM構文解析を行う必要がある、あなたはJsoupを使用する必要があります

 

<依存>

<groupIdを> com.aliyun.oss </ groupIdを>

<たartifactId> aliyun-SDK-OSS </たartifactId>

<バージョン> 2.2.3 </バージョン>

 

</依存関係>

<依存>

   <groupIdを> org.jsoup </ groupIdを>

   <たartifactId> jsoup </たartifactId>

   <バージョン> 1.9.2 </バージョン>

</依存関係>

コントローラ

 

パッケージcom.iueang.controller。

 

インポートのjava.io.File;

輸入java.util.HashMapを;

輸入java.util.Map;

 

輸入org.jsoup.Jsoup;

輸入org.jsoup.nodes.Document;

輸入org.jsoup.nodes.Element;

輸入org.jsoup.select.Elements。

輸入org.springframework.stereotype.Controller;

輸入org.springframework.web.bind.annotation.RequestMapping。

輸入org.springframework.web.bind.annotation.ResponseBody。

 

輸入com.iueang.util.DownLoadImg;

輸入com.iueang.util.GetBody。

com.iueang.util.OssUtil2インポート;

com.iueang.util.UrlUtilインポート;

@コントローラ

パブリッククラスTestUrl {

 

@RequestMapping( "tohtml")

tohtmlパブリック文字列(){

リターン "のhtml / index.htmlを";

}

@RequestMapping( "getHtml")

@ResponseBody

公共の地図<文字列、文字列> getHtml(文字列のURL){

// URLがテキスト記事を生成し得ます

文字列HTML = UrlUtil.getAccess(URL);

文字列REG = "(。*?)<HTML> </ HTML>";

文字列ヘッド= GetBody.getSubUtilSimple(HTML、REG)。

文字列HTTPHOST = "http://yueang2.oss-cn-qingdao.aliyuncs.com/testimg/"。

文字列newsBody =ヘッド。

文書DOC = Jsoup.parse(newsBody)。

     要素のPNG = doc.select( "IMG [データソース]")。

     System.out.println(PNG画像)。

     {(PNG画像要素の要素)のための

    //画像のアドレスを取得します。

       ストリングimgUrl = element.attr( "データSRC")。

       //あなたのローカルにダウンロード写真

       文字列filename = DownLoadImg.downloadPicture(imgUrl)。

ファイルファイル=新しいファイル( "D:\\平方メートル\\" +ファイル名);

// OSSにアップロード

ブールフラグ= OssUtil2.uploadFileToOss(ファイル、 "testimg /" +ファイル名);

IF(フラグ){

file.delete();

}

       文字列NEWSRC = HTTPHOST +ファイル名。

        element.attr( "SRC"、NEWSRC)。

     }

     newsBody = doc.toString()。

     System.out.println(newsBody)。

地図<文字列、文字列>マップ=新しいHashMapの<文字列、文字列>();

map.put( "resultHtml"、newsBody)。

マップを返します。

 

}

}

ツールのutil

 

GetBodyクラス

 

パッケージcom.iueang.util;

 

輸入java.util.regex.Matcher;

輸入java.util.regex.Patternの;

 

パブリッククラスGetBody {

 

公共の静的な文字列getSubUtilSimple(文字列HTML、文字列REG){

パターンのパターン= Pattern.compile(REG); //マッチングパターン

       M = pattern.matcher(HTML)と一致します。

       一方、(m.find()){

           戻りm.group(1)。

       }

       「」を返します。

}

 

}

OssUtilクラス

 

パッケージcom.iueang.util;

 

インポートのjava.io.File;

輸入java.util.HashMapを;

輸入java.util.Map;

 

輸入com.aliyun.oss.OSSClient;

輸入com.aliyun.oss.model.ObjectMetadata;

 

パブリッククラスOssUtil2 { 

//以下のパラメータ値は、最終文書の参照記事を必要と

静的な文字列の終点=「http://oss-cn-qingdao.aliyuncs.com」。

静的な文字列accessKeyId = "OSS GET"。

静的な文字列accessKeySecert = "OSS GET"。

静的な文字列bucketNameは "yueang2を" =;

 

/ **

* OSSへの個々のファイルをアップロードします

アップロードに*ファイルのFileオブジェクトの@paramファイル

*ファイル名@param objNameにアップロードは、このようなゲーム/ゲーム/ test.txtのようにフォルダを、含まれています

* @return

* /

uploadFileToOss(ファイルのファイル、文字列objNameに){boolean型のpublic static

   {試します

       OSSClient ossClient = NULL;

       {試します

           ossClient =新しいOSSClient(エンドポイント、accessKeyId、accessKeySecert)。

       }キャッチ(例外e){

           e.printStackTrace();

       }

       ObjectMetadataメタ=新しいObjectMetadata();

       ossClient.putObject(bucketName、objNameに、ファイル、メタ)。

       ossClient.shutdown();

   }キャッチ(例外e){

       e.printStackTrace();

       falseを返します。

   }

   trueを返します。

}

}

DownLoadImg类

 

パッケージcom.iueang.util;

 

輸入java.io.ByteArrayOutputStreamを;

インポートにjava.io.DataInputStream;

インポートのjava.io.File;

輸入java.io.FileOutputStreamは、

インポートにjava.io.IOException;

輸入java.net.MalformedURLException;

インポートのjava.net.URL;

輸入java.util.UUID;

 

輸入sun.misc.BASE64Encoder;

パブリッククラスDownLoadImg {

公共の静的な文字列downloadPicture(文字列urlList){

文字列のファイル名= "iueang" + UUID.randomUUID()のtoString()+ "PNG"。

ストリングパス= "D:/ 2 /" +ファイル名。

         URL URL = NULL;

         {試します

             URL =新しいURL(urlList)。

             DataInputStreamのDataInputStreamを=新しいのDataInputStream(url.openStream());

             FileOutputStreamのFileOutputStream =新しいのFileOutputStream(新しいファイル(パス));

             ByteArrayOutputStream出力=新しいByteArrayOutputStream();

 

             バイト[] =新しいバイト[1024]バッファと

             int型の長さ。

 

             一方、((長さ= dataInputStream.read(バッファ))> 0){

                 output.write(バッファ、0、長さ)。

             }

             BASE64Encoderエンコーダ=新しいBASE64Encoder()。

             ストリングエンコード= encoder.encode(バッファ)。

             fileOutputStream.write(output.toByteArray())。

             dataInputStream.close();

             fileOutputStream.close();

         }キャッチ(例外:MalformedURLException電子){

             e.printStackTrace();

         }キャッチ(IOExceptionを電子){

             e.printStackTrace();

         }

         System.out.println( "ダウンロード返回

おすすめ

転載: www.cnblogs.com/jenixbsk/p/12160755.html