| Server IP : 61.19.30.66 / Your IP : 216.73.216.15 Web Server : Apache/2.2.22 (Ubuntu) System : Linux klw 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 User : www-data ( 33) PHP Version : 5.3.10-1ubuntu3.48 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /usr/lib/python2.7/dist-packages/apport/crashdb_impl/ |
Upload File : |
ó
ˆ5„Oc @ s¯ d Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d
d „ ƒ YZ d Z d e j
f d „ ƒ YZ d „ Z e
d k r« e ƒ n d S( sù
Usage:
Enables the use of multipart/form-data for posting forms
Inspirations:
Upload files in python:
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/146306
urllib2_file:
Fabien Seisen: <fabien@seisen.org>
Example:
import MultipartPostHandler, urllib2, cookielib
cookies = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies),
MultipartPostHandler.MultipartPostHandler)
params = { "username" : "bob", "password" : "riviera",
"file" : open("filename", "rb") }
opener.open("http://wwww.bobsite.com/upload/", params)
Further Example:
The main function of this file is a sample which downloads a page and
then uploads it to the W3C validator.
iÿÿÿÿNt Callablec B s e Z d „ Z RS( c C s
| | _ d S( N( t __call__( t selft anycallable( ( sM /usr/lib/python2.7/dist-packages/apport/crashdb_impl/multipartpost_handler.pyt __init__/ s ( t __name__t
__module__R ( ( ( sM /usr/lib/python2.7/dist-packages/apport/crashdb_impl/multipartpost_handler.pyR . s i t MultipartPostHandlerc B sB e Z e j j d Z d „ Z d d d „ Z e e ƒ Z e Z RS( i
c C s… | j ƒ } | d k rt | ƒ t k rg } g } y\ xU | j ƒ D]G \ } } t | ƒ t k rz | j | | f ƒ qF | j | | f ƒ qF WWn; t k
rÏ t j ƒ \ } } } t d ƒ j
| ƒ ‚ n Xt | ƒ d k r÷ t j
| t ƒ } nz | j | | ƒ \ } } d | }
| j d ƒ ra| j d ƒ j d ƒ d k rad | j d ƒ d f GHn | j d |
ƒ | j | ƒ n | S( Ns1 not a valid non-string sequence or mapping objecti s multipart/form-data; boundary=%ss Content-Types multipart/form-datas Replacing %s with %ss content-type( t get_datat Nonet typet strt itemst filet appendt TypeErrort syst exc_infot with_tracebackt lent urllibt urlencodet doseqt multipart_encodet
has_headert
get_headert findt add_unredirected_headert add_data( R t requestt datat v_filest v_varst keyt valuet systypet tracebackt boundaryt contenttype( ( sM /usr/lib/python2.7/dist-packages/apport/crashdb_impl/multipartpost_handler.pyt http_request9 s,
c C s( | d k r t j ƒ } n | d k r0 d } n xB | D]: \ } } | d | 7} | d | 7} | d | d 7} q7 Wx˜ | D] \ } } | j j d ƒ d } t j | ƒ d p´ d } | d | 7} | d
| | f 7} | d | 7} | j d ƒ | d | j ƒ d 7} q| W| d | 7} | | f S(
Nt s --%s
s) Content-Disposition: form-data; name="%s"s
s
t /iÿÿÿÿi s application/octet-streams: Content-Disposition: form-data; name="%s"; filename="%s"
s Content-Type: %s
s
--%s--
( R t mimetoolst choose_boundaryt namet splitt mimetypest
guess_typet seekt read( t varst filesR% t bufferR! R"