File: /var/www/pdf2pptx/app.py
from flask import Flask, request, jsonify, send_from_directory
import os
from pdf2pptx import convert_pdf_to_pptx
app = Flask(__name__)
UPLOAD_FOLDER = '/var/www/pdf2pptx/uploads'
OUTPUT_FOLDER = '/var/www/pdf2pptx/output'
os.makedirs(UPLOAD_FOLDER, exist_ok=True)
os.makedirs(OUTPUT_FOLDER, exist_ok=True)
@app.route('/')
def index():
return send_from_directory('/var/www/pdf2pptx', 'index.html')
@app.route('/convert', methods=['POST'])
def convert():
if 'pdf' not in request.files:
return jsonify({'error': '未上传PDF文件'}), 400
pdf_file = request.files['pdf']
if pdf_file.filename == '':
return jsonify({'error': '未选择文件'}), 400
if not pdf_file.filename.endswith('.pdf'):
return jsonify({'error': '仅支持PDF文件'}), 400
pdf_path = os.path.join(UPLOAD_FOLDER, pdf_file.filename)
pptx_filename = pdf_file.filename.replace('.pdf', '.pptx')
pptx_path = os.path.join(OUTPUT_FOLDER, pptx_filename)
try:
pdf_file.save(pdf_path)
convert_pdf_to_pptx(pdf_path, pptx_path)
return jsonify({'download_url': f'/output/{pptx_filename}'})
except Exception as e:
return jsonify({'error': str(e)}), 500
@app.route('/output/<filename>')
def download_file(filename):
return send_from_directory(OUTPUT_FOLDER, filename)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)