ich versuche gerade mit mechaniz im .htaccess-Bereich eine Datei hochzuladen. Auf meinem Webserver habe ich einen Ordner Passwort geschützt. Dort liegt eine PHP-Seite, die die Datei hochlädt. Das PHP-Script funktioniert tadellos. Wenn ich das nachfolgende, ausführbare Programm ausführe, dann bekomme ich einen Traceback (am Ende meines Beitrages zu finden). Aber merkwürdig ist: Sobald ich br.submit() auskommentiere, dann klappt es. Über Print wird mir dann der "HTML-Quelltext" ausgegeben (siehe am Ende des Beitrages). Das heißt, mechanize hat schon mal Zugang zum .htaccess-Bereich. Irgendwie komme ich nicht weiter. Habt ihr eine Idee?
Ihr könnt es gerne testen, der Benutzername test, das Passwort test und die url sind gültig und korrekt. Ich habe extra für euch diesen Bereich eingerichtet, damit ihr es testen könnt.
Code: Alles auswählen
from mechanize import Browser
def access_atuh(url = None,
user = None,
pwd = None,
file_path = None):
br = Browser()
br.add_password(url, user, pwd)
response = br.open(url)
br.select_form(nr=0)
br.form.add_file(open(file_path,'rb'))
#br.form.add_file(open(file_path), 'text/plain', file_path)
br.submit()
print response.read()
access_atuh(url = "http://sophus.bplaced.net/xarphus_support/support_account/test/upload_form.php",
user = "test",
pwd = "test",
file_path = r'C:\path\to\YourImage.jpg')
Sobald ich den br.submit() auskommentiere, wird mir folgendes über Print ausgegeben:Traceback (most recent call last):
File "C:\Users\Sophus\Desktop\http_mechnaize\hppt_mechanize.py", line 20, in <module>
file_path = r'C:\Users\Sophus\Desktop\Buehne.jpg')
File "C:\Users\Sophus\Desktop\http_mechnaize\hppt_mechanize.py", line 13, in access_atuh
res = br.submit()
File "C:\Python27\lib\site-packages\mechanize\_mechanize.py", line 685, in submit
return self.open(self.click(*args, **kwds))
File "C:\Python27\lib\site-packages\mechanize\_mechanize.py", line 254, in open
return self._mech_open(url_or_request, data, timeout=timeout)
File "C:\Python27\lib\site-packages\mechanize\_mechanize.py", line 310, in _mech_open
raise response
httperror_seek_wrapper: HTTP Error 401: Unauthorized
<!-- on liner comment -->
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="datei"><br>
<input type="submit" name="upload" value="Upload">