Das deutsche Python-Forum

10 Jahre Diskussionen rund um die Programmiersprache Python
Aktuelle Zeit: Sonntag 21. September 2014, 18:07

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: BottlePy Datei hochladen
BeitragVerfasst: Mittwoch 7. März 2012, 15:43 
User

Registriert: Montag 19. Dezember 2011, 17:42
Beiträge: 83
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
  1. from bottle import route, request, run, template
  2.  
  3. @route('/')
  4. def index():
  5.         return template('layout.tpl')
  6.  
  7. @route('/upload', method='POST')
  8. def do_upload():
  9.         data = request.files.data
  10.         if data.file:
  11.                 raw = data.file.read() # This is dangerous for big files
  12.                 #hier ?
  13.                 filename = data.filename
  14.                 return "Hello! You uploaded %s (%d bytes)." % (filename, len(raw))
  15.         return "You missed a field."
  16.        
  17. run()
  18.  
Highlighting by GeSHi


layout.tpl
<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>
Highlighting by GeSHi


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, 17:03, insgesamt 2-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags: Re: BottlePy Datei hochladen
BeitragVerfasst: Mittwoch 7. März 2012, 15:51 
Moderator

Registriert: Mittwoch 26. Januar 2005, 00:29
Beiträge: 23519
@seishin: Was denkst Du denn an was `raw` gebunden ist?

_________________
“I'd say Java was never sexy, but dressed up in expensive lingerie by marketing maniacs…” — Diez B. Roggisch in c.l.python


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: BottlePy Datei hochladen
BeitragVerfasst: Mittwoch 7. März 2012, 16:02 
User

Registriert: Mittwoch 19. Mai 2010, 17:25
Beiträge: 478
  1. from bottle import route, request, run, template
  2.  
  3. @route('/')
  4. def index():
  5.     return template('layout.tpl') # da muss soweit ich weiß 'layout' hin
  6.  
  7. @route('/upload', method='POST')
  8. def do_upload():
  9.     data = request.files.data
  10.     if data.file:
  11.         raw = data.file.read() # This is dangerous for big files
  12.         # „raw“ beinhaltet nun den Inhalt der Datei. Den kannst du jetzt ganz normal
  13.         # in eine Datei schreiben (file.write(...)). Das sollte man am „data.file.read“
  14.         # erkennen können
  15.         filename = data.filename
  16.         return "Hello! You uploaded %s (%d bytes)." % (filename, len(raw))
  17.     return "You missed a field."
  18.        
  19. run()
Highlighting by GeSHi


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: BottlePy Datei hochladen
BeitragVerfasst: Mittwoch 7. März 2012, 17:02 
User

Registriert: Montag 19. Dezember 2011, 17:42
Beiträge: 83
Großartig ihr seid die Beste und Python sowieso!

  1. import os
  2. from bottle import route, request, run, template
  3.  
  4. PATH = 'Pfad halt wohin...'
  5.  
  6. @route('/')
  7. def index():
  8.         return template('layout') #@nomnom beides geht...
  9.  
  10. @route('/upload', method='POST')
  11. def do_upload():
  12.         data = request.files.data
  13.         if data.file:
  14.                 raw = data.file.read() # This is dangerous for big files
  15.                 with open(os.path.join(PATH, data.filename),'wb') as f:
  16.                         f.write(raw)
  17.                 filename = data.filename
  18.                 return "Hello! You uploaded %s (%d bytes)." % (filename, len(raw))
  19.         return "You missed a field."
  20.        
  21. run()
  22.  
Highlighting by GeSHi


Vielen herzlichen Dank!


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Deutsche Übersetzung durch phpBB.de