環境
- python3.7
- bottle
- windows
多分macやlinuxでもできると思います
アップロード(スマートフォンからPC)
bottleを使います
pip install bottle
http://bottlepy.org/docs/dev/tutorial.html#file-uploadsを参考に
form.html
<form action="/upload" method="post" enctype="multipart/form-data">
Select a file: <input type="file" name="upload" multiple="multiple" />
<input type="submit" value="Start upload" />
</form>
filetransfer.py
import os.path
from bottle import route, request, run, template
@route('/', method='GET')
def do_root():
return template('form.html')
@route('/upload', method='POST')
def do_upload():
uploads = request.files.getall('upload')
for upload in uploads:
name, ext = os.path.splitext(upload.filename)
if ext not in ('.png', '.jpg', '.jpeg'):
return 'File extension not allowed.'
for upload in uploads:
print(upload.filename)
save_path = upload.filename
upload.save(save_path)
return 'OK'
if __name__ == '__main__':
run(host='0.0.0.0', port=12345, debug=True)
サーバーを起動したらスマートフォンなどのブラウザでhttp://(PCのIPアドレス):(ポート番号)に接続
cssとか使ってないからボタンなどがちっちゃいけど使えます
対応しているファイルの拡張子はpngとjpgとjpegです
複数のファイルを一度にアップロードできるようにinputにmultipleを指定しました
iphoneのsafariではうまく動きました
kindle fireのsilk browserでは1つずつしかアップロードできませんでした
multipleに対応していないブラウザもあるようです
https://caniuse.com/#feat=input-file-multiple
0 件のコメント:
コメントを投稿