##やりたいこと
Requestを使って、POSTを行うプログラムを作成しましたが、ファイル名に日本語を含む場合のみ、POSTしたファイルを受け手側で確認できません。
ファイル名に日本語を含む場合
python
1>>> import requests 2>>> f = open(r'C:\temp\テスト\テスト.csv', 'rb') 3>>> r = requests.post('https://example.com/upload.php', files={'userfile':f}, auth=()) 4>>> r 5<Response [200]>
ファイル名に日本語を含まない場合
>>> import requests >>> f = open(r'C:\temp\テスト\test.csv', 'rb') >>> r = requests.post('https://example.com/upload.php', files={'userfile':f}, auth=()) >>> r <Response [200]>
受け手側はPHPで作成しています。
php
1<?php 2 if( isset($_FILES) ){ 3 foreach ($_FILES as $file) { 4 error_log(print_r($file,true)); 5 } 6 } 7?>
Apacheのログを見ると、日本語を含まない場合にのみ、ssl_error_logに$_FILESの中身が出力されています。
open()
でファイルを開けていないのかとも思いましたが、
python
1>>> open(r'C:\temp\テスト\テスト.txt', 'rb') 2<_io.BufferedReader name='C:\\temp\\テスト\\テスト.txt'>
のようになるので、問題ないのではないかと思います。
原因に心当たりのある方はご教示頂けないでしょうか。
バージョン・環境等
- Windows7
- Python 3.5.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。