オンライン Word 編集専用Office オープンソース フレームワーク
導入
Community Edition を使用すると、ONLYOFFICE Docs をローカル サーバーにインストールし、オンライン エディターを ONLYOFFICE コラボレーション プラットフォームやその他の一般的なシステムと統合できます。
ONLYOFFICE Docs は、テキスト、スプレッドシート、プレゼンテーション用のビューアとエディタを含むオンライン オフィス スイートで、Office Open XML 形式 (.docx、.xlsx、.pptx) と完全に互換性があり、リアルタイムの共同編集をサポートします。
office イメージのみをインストールする
# 将数据存储在容器外部
mkdir -p /app/onlyoffice/DocumentServer/logs
chmod 400 /app/onlyoffice/DocumentServer/logs
# onlyoffice/documentserver社区服务版本
# onlyoffice/documentserver-de 为开发版本:里面内置了rabbitmq、redis、nginx等必要的服务
docker pull onlyoffice/documentserver
docker run -i -t -d -p -e TZ="Asia/Shanghai" 8888:80 --restart=always -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice -v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
バックエンドは 2 つのインターフェイスを提供するだけで済みます
- インターフェース 1: ファイルリンクと md5 を返す
- ファイル保存コールバック インターフェイスの
公式 Web サイトの例:
public class IndexServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter writer = response.getWriter();
Scanner scanner = new Scanner(request.getInputStream()).useDelimiter("\\A");
String body = scanner.hasNext() ? scanner.next() : "";
JSONObject jsonObj = (JSONObject) new JSONParser().parse(body);
if((long) jsonObj.get("status") == 2)
{
String downloadUri = (String) jsonObj.get("url");
URL url = new URL(downloadUri);
java.net.HttpURLConnection connection = (java.net.HttpURLConnection) url.openConnection();
InputStream stream = connection.getInputStream();
File savedFile = new File(pathForSave);
try (FileOutputStream out = new FileOutputStream(savedFile)) {
int read;
final byte[] bytes = new byte[1024];
while ((read = stream.read(bytes)) != -1) {
out.write(bytes, 0, read);
}
out.flush();
}
connection.disconnect();
}
writer.write("{\"error\":0}");
}
}