BottlePy Datei hochladen

Django, Flask, Bottle, WSGI, CGI…
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

BottlePy Datei hochladen

Beitragvon seishin » Mittwoch 7. März 2012, 14:43

Hi,
nachdem ihr mir schon so großartig geholfen habt.

Ich habe mich an das BottlePy Tutorial gehalten, das Script jedoch wie folgt abgeändert.

upload.py

Code: Alles auswählen

from bottle import route, request, run, template

@route('/')
def index():
   return template('layout.tpl')

@route('/upload', method='POST')
def do_upload():
   data = request.files.data
   if data.file:
      raw = data.file.read() # This is dangerous for big files
                #hier ?
      filename = data.filename
      return "Hello! You uploaded %s (%d bytes)." % (filename, len(raw))
   return "You missed a field."
   
run()


layout.tpl

Code: Alles auswählen

<form action="/upload" method="post" enctype="multipart/form-data">
   <input type="text" name="name" />
   <input type="file" name="data" /><br>
   <input type="submit" name="upload" />
</form>


Meine Frage bei upload.py in der Zeile mit #hier ?
Wie vermag man denn da nun die Datei auf den Server zu schreiben?
Oder habe ich da komplett einen Denkfehler?
Desweiteren wird ja darauf hin gewiesen das diese Möglichkeit nicht gut ist... hat jemand evtl. eine alternative Lösung?

Falls ihr da irgendwelche Links hättet zu github oder bitbucket oder ähnliches.
Wo ich Beispiele finde, Grandios!
Sonst natürlich auch zu jeglicher Idee, Anregung, mein verbindlichsten Dank.


Gruß
Zuletzt geändert von seishin am Mittwoch 7. März 2012, 16:03, insgesamt 2-mal geändert.
Benutzeravatar
BlackJack
Moderator
Beiträge: 29707
Registriert: Dienstag 25. Januar 2005, 23:29
Wohnort: Berlin
Kontaktdaten:

Re: BottlePy Datei hochladen

Beitragvon BlackJack » Mittwoch 7. März 2012, 14:51

@seishin: Was denkst Du denn an was `raw` gebunden ist?
“The problem in the world today is communication. Too much communication” — Homer Simpson
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

Re: BottlePy Datei hochladen

Beitragvon nomnom » Mittwoch 7. März 2012, 15:02

Code: Alles auswählen

from bottle import route, request, run, template

@route('/')
def index():
    return template('layout.tpl') # da muss soweit ich weiß 'layout' hin

@route('/upload', method='POST')
def do_upload():
    data = request.files.data
    if data.file:
        raw = data.file.read() # This is dangerous for big files
        # „raw“ beinhaltet nun den Inhalt der Datei. Den kannst du jetzt ganz normal
        # in eine Datei schreiben (file.write(...)). Das sollte man am „data.file.read“
        # erkennen können
        filename = data.filename
        return "Hello! You uploaded %s (%d bytes)." % (filename, len(raw))
    return "You missed a field."
   
run()
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

Re: BottlePy Datei hochladen

Beitragvon seishin » Mittwoch 7. März 2012, 16:02

Großartig ihr seid die Beste und Python sowieso!

Code: Alles auswählen

import os
from bottle import route, request, run, template

PATH = 'Pfad halt wohin...'

@route('/')
def index():
   return template('layout') #@nomnom beides geht...

@route('/upload', method='POST')
def do_upload():
   data = request.files.data
   if data.file:
      raw = data.file.read() # This is dangerous for big files
      with open(os.path.join(PATH, data.filename),'wb') as f:
         f.write(raw)
      filename = data.filename
      return "Hello! You uploaded %s (%d bytes)." % (filename, len(raw))
   return "You missed a field."
   
run()


Vielen herzlichen Dank!

Zurück zu „Webframeworks“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder