python 에서 파일 과 문 자 를 PHP 서버 에 업로드 하 는 것 을 자세히 설명 합 니 다.

많은 친구 들 이 댓 글 에서 python 이 서버 에 파일 과 문 자 를 올 리 는 것 에 대해 물 었 습 니 다.이 를 위해 해결 방법 을 정리 해 드 렸 습 니 다.
간단 한 문자열 업로드

def send_str_server(self):
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", 
data=payload)
소개:payload 는 키 쌍 형식의 데이터 로 서버 의 데이터 에 표 시 됩 니 다.
key1=value1&key2=value2
http://httpbin.org/post 업 로드 를 위 한 서버 주소
파일 업로드

def send_image_server(self):
data = {"k1" : "v1"} 
files = {"img" : open("test.png", "rb")} 
r = requests.post("http://httpbin.org/post", data,
files=files)
소개:data 는 키 값 대 형식의 데이터 로 post 에 휴대 할 데 이 터 를 요청 합 니 다.
files 의 img 은 phop 서버 에서 그림 에 대한 필터 필드 를 표시 합 니 다.open 의 첫 번 째 매개 변 수 는 그림 의 주소 이 고 두 번 째 매개 변 수 는 바 이 너 리 파일 쓰기 권한 을 표시 합 니 다.http://httpbin.org/post서버 주소 입 니 다.
python post 방식 으로 php 서버 에 파일 업로드
인터넷 에서 많은 코드 를 보 았 지만 포스터 를 어떻게 구체 적 으로 사용 하 는 지 말 하지 않 고 이틀 동안 시험 해 보 았 는데 마침내 성공 했다.
python 호출 phop 을 통 해 파일 업로드 가 이 루어 졌 습 니 다.
여러분 과 공유 하 겠 습 니 다.
우선 pip 를 통 해 poster(easyinstall 도 마찬가지 입 니 다):
pip install poster
image.py

#!usr/bin/python
# image.py
# -*- coding=utf-8 -*- 
from poster.encode import multipart_encode
import urllib2
import sys
from urllib2 import Request, urlopen, URLError, HTTPError
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers

register_openers()
f=open(“C:/Users/User/Pictures/Saved Pictures/test1.jpg”, "rb")
#f=open(sys.argv[1], "rb")   sys.argv[1]            python image.py C:/Users/User/Pictures/Saved Pictures/test1.jpg 
#  test1.jpg      image.py
#"C:/Users/User/Pictures/Saved Pictures/vedio5.jpg"
# headers       Content-Type   Content-Length
# datagen         ,         
datagen, headers = multipart_encode({"myFile": f})
#       
request = urllib2.Request("http://localhost/upload_image/upload_image.php", datagen, headers)
try:
response = urllib2.urlopen(request)
print response.read()

except URLError,e:
print e.reason
print e.code
-----

upload_image.php

----
<?php
echo $_FILES['myFile']['name'];
if (isset($_FILES['myFile'])) 
{
$names = $_FILES["myFile"]['name'];
$arr = explode('.', $names);
$name = $arr[0]; //    
$date = date('Y-m-d H:i:s'); //    
$fp= fopen($_FILES['myFile']['tmp_name'], 'rb');
$type = $_FILES['myFile']['type'];
$filename = $_FILES['myFile']['name'];
$tmpname = $_FILES['myFile']['tmp_name'];
//             upload     
if(move_uploaded_file($tmpname,$_SERVER['DOCUMENT_ROOT']."/upload/".$filename)){
echo "upload image succeed";
}else{
echo "upload image failed";
}
}
?>
이상 은 python 업로드 와 파일,문 자 를 PHP 서버 에 올 리 는 코드 구현 에 관 한 두 가지 방식 입 니 다.더 좋 은 내용 이 있 으 면 아래 에 메 시 지 를 남 겨 주 십시오.

좋은 웹페이지 즐겨찾기