office(如:Word、Excel、PPT 等)文件輕鬆實現在線預覽

解決方案有很多,比如可以先將文件轉圖片或者pdf然後再網頁中顯示,
我在這裏說的可能並不適合大家,這裏簡單說下幾個快捷的方式

方案一:

可以直接使用第三方服務,不過這個需要收費的,我在這列幾個

http://www.yozodcs.com/

https://www.idocv.com/

http://www.officeweb365.com/

方案二:

一個快速的解決方法:
如果項目需求只要求預覽內容而不要求對文檔進行編輯的操作,則可以選擇在線預覽的方式進行處理;
現附上兩個在線預覽office文檔的地址:(瀏覽器都需要chrome的內核)

1、  https://docs.google.com/viewer?url=(輸入你的文檔在服務器中的地址)

2、  https://view.officeapps.live.com/op/view.aspx?src=(輸入你的文檔在服務器中的地址)

3、  http://office.qingshanboke.com/Default.aspx?url=(輸入你的文檔在服務器中的地址)

如果是本地文件可以使用下面這種方式,調用了永中的接口:

需要用到的第三方工具包爲:
commons-logging-1.1.jar,httpclient-4.5.jar,
httpcore-4.4.1.jar,httpmime-4.5.jar,
如代碼出現編譯不過,請加入這四個包。

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.Charset;
import java.util.Date;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import com.alibaba.fastjson.JSONObject;


public class Demo {

    /**
     * 向指定 URL 上傳文件POST方法的請求
     *
     * @param url 發送請求的 URL
     * @param filepath 文件路徑
     * @param type 轉換類型
     * @return 所代表遠程資源的響應結果, json數據
     */
    public static String SubmitPost(String url, String filepath, String type) {
        String requestJson = "";
        HttpClient httpclient =  HttpClients.createDefault();
        try {
            HttpPost httppost = new HttpPost(url);
            FileBody file = new FileBody(new File(filepath));
            MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE, null,
                    Charset.forName("UTF-8"));
            reqEntity.addPart("file", file); // file爲請求後臺的File upload;屬性
            reqEntity.addPart("convertType", new StringBody(type, Charset.forName("UTF-8")));
            httppost.setEntity(reqEntity);
            HttpResponse response = httpclient.execute(httppost);
            int statusCode = response.getStatusLine().getStatusCode();
            if (statusCode == HttpStatus.SC_OK) {
                HttpEntity resEntity = response.getEntity();
                requestJson = EntityUtils.toString(resEntity);
                EntityUtils.consume(resEntity);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                httpclient.getConnectionManager().shutdown();
            } catch (Exception ignore) {

            }
        }
        return requestJson;
    }


    public static void main(String[] args) {
        //文件上傳轉換,獲取返回數據
        String convertByFile = SubmitPost("http://dcs.yozosoft.com:80/upload", "D://demo.ppt", "1");
        JSONObject obj = JSONObject.parseObject(convertByFile);
        if ("0".equals(obj.getString("result"))) {// 轉換成功
            String urlData = obj.getString("data");
            urlData = urlData.replace("[\"", "");//去掉[
            urlData = urlData.replace("\"]", "");//去掉]

            //最後urlData是文件的瀏覽地址
            System.out.println(urlData);//打印網絡文件預覽地址
        } else {// 轉換失敗
            System.out.println("轉換失敗");
        }
    }

}
發佈了60 篇原創文章 · 獲贊 38 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章