关于在Linux服务器下PHP调用python的问题与解决方案路线

目的:客户端上传图片,服务器接收并交至python处理。

1.一个简单的解决方案思维导图

关于在Linux服务器下PHP调用python的问题与解决方案路线_第1张图片

2.PHP的socket客户端源码

3.PHP的图片上传源码

4.python服务端源码

#-*- coding:utf-8 -*-
import sys
import os.path as osp
import socket

from optparse import OptionParser
def add_path(path):
	if path not in sys.path:
		sys.path.append(path)

this_dir=osp.dirname(__file__)
lib_path=osp.join(this_dir,'tools')
add_path(lib_path)
add_path(this_dir)

from test_my import testSingleImg
from CalculateDistArea import calculateDistArea
def runPredict(image_list,output):
	(Area, averageDist,mask,mask1,t)=testSingleImg(image_list,output)
	return Area, averageDist, t	

if __name__ == "__main__":
  
    # 创建tcp服务端socket
    tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 绑定端口
    tcp_server_socket.bind(("172.18.66.250", 8888))
    # 设置监听,把服务端socket由主动套接字改成被动套接字,只能接收客户端的连接请求
    tcp_server_socket.listen(128)
    while True:
        try:
            print("开始监听.......")
            client_socket, client_ip = tcp_server_socket.accept()
            print("一个客户端连接上.....")
            str_recive = client_socket.recv(1024)
            if str_recive:
                # print(str_recive)
                data_str=str(str_recive)
                print(data_str)
                str1 = data_str.split("+")
                str2 = str1[0]
                str3 = str1[1]
                print(str2)
                print(str3)
                
                Area,averageDist,t=runPredict(str2,str3)
                #print('The area =%f and average distance =%f'%(Area, averageDist))
                print Area, averageDist, t
                
                client_socket.send(str(averageDist).encode("utf-8"))
                str(averageDist).encode("utf-8").split("1")
            else:
                break
        except Exception,e:
            print e.message
            client_socket.close()









    

 

你可能感兴趣的:(PHP,python,图片上传,Linux)