2011-06-21 11 views
9

Po pierwsze, nie potrzebuję żadnych funkcji, poza przesyłaniem pliku. Bez paska postępu, bez typu pliku ani sprawdzania rozmiaru, bez wielu plików.Utworzenie prostej strony pobierania pliku HTML

Potrzebuję najprostszej strony HTML do obsługi wysyłania i zapisywania pliku o podanej nazwie.

Próbowałem użyć tego:

<form action="../cgi-bin/upload.py" method="post" enctype="multipart/form-data"> 
<input type="file" name="upload" /> 
<input type="submit" /></form> 

W upload.py:

#!/usr/bin/python 

import os 
import commands 
import cgi, cgitb 

cgitb.enable() 
print "Content-Type: text/html" 
print 
print 'start!' 
form = cgi.FieldStorage() 
filedata = form['upload'] 

Ale nie wiem jak to zapisać w pliku, jak "Beautiful.mp3".

Czy jakiekolwiek ciało może pomóc?

Chociaż, naprawdę, nie chcę używać żadnych skryptów. Chcę tylko najbardziej podstawowych stron HTML. Skrypty w języku Python będą istniały tylko wtedy, gdy muszą istnieć niektóre programy obsługi CGI. Flash nie jest preferowany.

Odpowiedz

7

Obiekt filedata zawija obiekt podobny do pliku, który można traktować jak zwykły plik. W zasadzie byłoby to zrobić:

if filedata.file: # field really is an upload 
    with file("Beautiful.mp3", 'w') as outfile: 
     outfile.write(filedata.file.read()) 

Albo można zrobić czegokolwiek innego z nim, używając read(), readlines() lub readline()

+0

Dziękuję bardzo, to działa! BTW, czy mógłbyś dać mi jakieś instrukcje o tym, jak mogę to poznać z tymi oficjalnymi dokumentami? Czy to jest możliwe? Aha ~ – Topro

+0

@ user782114: trzymaj to pod poduszką: http://docs.python.org/library/ – SingleNegationElimination

Powiązane problemy