간단하게 웹 서버에 파일을 업로드 할 수 있는 파이썬 스크립트를 만들어 보자.
앞서, PHP는 아래와 비슷하게 구성되어야 한다. (제타위키 참고)
<upload.php>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <?php // 설정 $uploads_dir = './uploads'; $allowed_ext = array('jpg','jpeg','png','gif'); // 변수 정리 $error = $_FILES['myfile']['error']; $name = $_FILES['myfile']['name']; $ext = array_pop(explode('.', $name)); // 오류 확인 if( $error != UPLOAD_ERR_OK ) { switch( $error ) { case UPLOAD_ERR_INI_SIZE: case UPLOAD_ERR_FORM_SIZE: echo "파일이 너무 큽니다. ($error)"; break; case UPLOAD_ERR_NO_FILE: echo "파일이 첨부되지 않았습니다. ($error)"; break; default: echo "파일이 제대로 업로드되지 않았습니다. ($error)"; } exit; } // 확장자 확인 if( !in_array($ext, $allowed_ext) ) { echo "허용되지 않는 확장자입니다."; exit; } // 파일 이동 move_uploaded_file( $_FILES['myfile']['tmp_name'], "$uploads_dir/$name"); // 파일 정보 출력 echo "<h2>파일 정보</h2> <ul> <li>파일명: $name</li> <li>확장자: $ext</li> <li>파일형식: {$_FILES['myfile']['type']}</li> <li>파일크기: {$_FILES['myfile']['size']} 바이트</li> </ul>"; ?> | cs |
업로드 폼을 파이썬으로 옮긴 건 아래와 같다.
forexample.txt는 upload.py와 동일한 위치에 있어야 한다.
<upload.py>
1 2 3 4 5 6 7 8 9 | import requests try: url = 'http://thisisyourserver/upload.php' files = {'myfile': open('forexample.txt', 'rb')} r = requests.post(url, files=files) print(r.text) except: print("") | cs |
'Developing > Python' 카테고리의 다른 글
Python - Flask를 이용한 카카오톡 급식 봇을 만들어보자. (0) | 2017.09.02 |
---|