1. 程式人生 > >python服務之間互傳檔案

python服務之間互傳檔案

需求

flask以及djaogo都屬於python Web框架。

由於沒有找到flask框架http協議直接傳檔案的方法,django有一個方便的上傳檔案的方法,利用django框架實現Word轉換為PDF的服務。

flask服務將Word docx檔案傳送給django服務,django將其轉換為PDF之後再將PDF檔案傳送給flask,flask將PDF儲存下來

flask:

import requests
from requests_toolbelt import MultipartEncoder

def word2pdf(wordpath):
    s = requests
    url='django服務地址'
    path_pdf = wordpath
    print("圖片路徑:"+path_pdf)
   
    m = MultipartEncoder(
        fields={'path': path_pdf,
                   'file': ('filename', open(wordpath, 'rb'), 'text/plain')
                }
    )
    ##將檔案內容傳輸到django服務
    r = s.post(url, data=m, headers={'Content-Type': m.content_type})

    pdfpath = wordpath.rsplit('.', 1)[0] + '.pdf'
    ##儲存返回的檔案內容
    with open(pdfpath, 'wb') as pdf:
        pdf.write(r.content)

django:

from django.http import HttpResponse
import os
base_dir = 'F:/Project/'
def word2pdf(request):
    if request.POST:
        global base_dir
        wordpath = request.POST.get('path')
        wordpath =base_dir + wordpath
        print(wordpath)

        path = os.path.dirname(wordpath)
        if not os.path.isdir(path):
            os.makedirs(path)
        handle_uploaded_file(request.FILES['file'],wordpath)

        ##將Word轉換為PDF
        BASE_DIR = os.path.dirname(__file__)  ##project path
        print('haha base dir '+BASE_DIR)
        cmd = BASE_DIR + 'Docx2PDF.exe ' + wordpath
        os.system(cmd)

        ##將PDF檔案傳輸給flask
        pdfpath = wordpath.rsplit('.', 1)[0] + '.pdf'
        print('pdf路徑:'+pdfpath)
        f = open(pdfpath, 'rb')
        return HttpResponse(f.read(),content_type='text/plain')

        #返回檔案時,HttpResponse適合小檔案,當檔案過大時,可以採用以下方法

        #response = StreamingHttpResponse(file_iterator(pdfpath))

        #return response

##接收Word檔案
def handle_uploaded_file(word,path):
    destination = open(path, 'wb+')
    for chunk in word.chunks():
        destination.write(chunk)
    destination.close()

相關推薦

python服務之間檔案

需求 flask以及djaogo都屬於python Web框架。 由於沒有找到flask框架http協議直接傳檔案的方法,django有一個方便的上傳檔案的方法,利用django框架實現Word轉換為PDF的服務。 flask服務將Word docx檔案傳送給djang

Ubuntu虛擬機器與Windows主機之間檔案

首先ubuntu要安裝配置SSH          Ubuntu 下安裝 OpenSSH Server 是無比輕鬆的一件事情,需要的命令只有一條:   sudo apt-get install openssh-server

vm兩個linux虛擬機器之間檔案

例如程式碼在ip為192.168.1.1中的home/code路徑下,複製到192.168.1.2中,在192.168.1.2的終端中執行一下命令 scp -r [email protect

兩個虛擬機器之間檔案

[[email protected] tomcat]# scp -r [email protected]:/usr/java/tomcat/apache-tomcat-8.0.52.tar.gz ./例如程式碼在ip為192.168.3.29中的/usr/

樹莓派之間檔案

因為使用了樹莓派來做一個專案,使用的是樹莓派3 b+,在樹莓派上用Qt編譯好一個可執行程式之後,要拷貝到另外的樹莓派上去執行,網上查了下,使用sftp可行,現在記錄下來備忘。http://shumeipai.nxez.com/2013/09/07/use-the-remote

linux之間檔案(ubuntu為例)

1.sudo apt-get update 下載前更新一下源,防止有些包找不到 2.sudo apt-get install openssh-server 下載ssh的服務端,其實執行這個命令之後,openssh-client也會預設安裝,反正我的是這樣。如果沒有預設安裝c

pscp實現windows和linux之間檔案

PSCP (PuTTY Secure Copy client)是PuTTY 提供的檔案傳輸工具 ,通過 SSH 連線,在兩臺機器之間安全的傳輸檔案,可以用於任何 SSH(包括 SSH v1、SSH v2) 伺服器。 只需將putty的pscp.exe放到C:\Windows

Xshell用於windows主機和linux虛擬機器之間檔案

此方法也是可以連線阿里雲伺服器的,通過xshell使用阿里雲伺服器並進行檔案的上傳下載真的好方便。 注:本文轉自 https://www.linuxidc.com/Linux/2015-05/117975.htm  這個東西比“共享資料夾”好用多了!(當然需要先配置xshe

如何輕鬆在win和linux之間檔案

相信剛學Linux的同學肯定有這樣的困惑 那麼我剛開始的時候用哪種方式嘞,我列一下我使用過的方式。 1.在linux伺服器上開啟ftp。 優點:使用方便。 缺點:還得配置ftp,好煩啊。 2.藉助一箇中間網站,先上傳到網站上,然後在linux上下載下來。 優點

windows 與CentOS之間檔案

1. 安裝lrzsz(zmodem)     # yum install lrzsz 2

window 與CentOS之間文件操作步驟

文件 entos nsf centos file 切換 文件的 賬戶 自動 工具:SecureCRT,Xshell。步驟一:安裝lrzsz軟件,root權限下。安裝lrzsz(zmodem)對於CentOS系統:1[root@www ~]# yum install lrzs

linux下兩臺主機檔案

假設主機B:[email protected] 1.從本機傳至另一臺主機B $ scp [引數] [檔案地址+名字] [email protected]:[要儲存的位置] 此時輸入密碼即可 2.從主機B傳到本機 $ scp [引數] [email&#

win2008 r2 搭建FTP服務實現上檔案

如何使用FTP傳輸檔案到伺服器 Win10開啟FTP與配置(完整無錯版)   一、控制面板》程式》開啟或關閉windows功能     二、安裝IIS服務   三、開始》管理工具》計算機管理

使用TCP協議,分別編寫服務端和客戶端,要求客戶端向服務端上檔案。(使用字元流完成)

package Test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.IOException; import java.io

Ubuntu 之linux與windows檔案

Windows系統下與linux傳輸檔案 windows環境下,windows傳出資料到linux下 確保ubuntu安裝了ssh服務端。 如果沒有安裝,使用以下命令安裝: sudo aptget install ssh service sshd restart 2

window Linux檔案

pscp用法 scp命令例如:pscp c:\testtest.tar [email protected]:/home/guowei/ 回車後輸入密碼就可以了。 上傳 1 PSCP.EXE -p -r -v -pw x

Python Flask,上檔案,request.files

  demo.py(上傳檔案): # coding:utf-8 from flask import Flask, request # 匯入request物件 app = Flask(__name__) @app.route("/upload", methods=["PO

Python下ftp上檔案linux伺服器

模組介紹: 1 from ftplib import FTP 2 ftp = FTP() #設定變數 3 ftp.set_debuglevel(2) #開啟除錯級別2 顯示詳細資訊 4 ftp.connect("IP", "port") #連線ftp, IP和埠

解決python中requests上檔案遇到中文名檔案時,上失敗的問題

本人使用的是Python3.4.3為例:    找到C:\Python34\Lib\site-packages\urllib3\fields.py檔案將: result = '%s="%s"' % (name, value) try: