What is it ?
Droopy is a mini Web server whose sole purpose is to let others upload files to your computer.
Why ?
Say you’re chatting with a friend on MSN Messenger (perhaps with the excellent pidgin ?). She wants to send you amazing photos she took last week-end, so she uses Messenger file transfer. Unfortunately, the zip file is over 50 MB and it’s painfully slow. Now relax, droopy comes to rescue.
Does it work on my computer ?
You can use it on Unix (Linux, BSD, MacOSX) and Windows. Droopy is a python script so you’ll need to have Python installed.
How to use it ?
Droopy is a command-line program. I’ll suppose you’ve downloaded and saved the file in ~/bin/. Go to the directory where you want the uploaded files to be stored, for example:
mkdir ~/uploads
cd ~/uploads
Then, run droopy. You can give a message and a picture to display:
python ~/bin/droopy -m "Hi, it's me Bob. You can send me a file." -p ~/avatar.png
And it’s up and running on port 8000 of you computer. Check it out at http://localhost:8000, and give your computer’s address to your friends.
Type droopy -h to see all options:
Usage: droopy [options] [PORT] Options: -h, --help show this help message and exit -m MESSAGE, --message=MESSAGE set the message -p PICTURE, --picture=PICTURE set the picture -d DIRECTORY, --directory=DIRECTORY set the directory to upload files to --save-config save options in a configuration file --delete-config delete the configuration file and exit
License
Droopy is free software distributed under the Python Software Foundation License.
Feedback and contribution
I’d love to hear about your experience using droopy. If you have ideas to improve it, please let me know. Pierre – stackp@online.fr.



This is absolutely perfect. Thanks a lot, I’ve been looking for something like this for a long time.
What about to look for a ~/.droopyrc file and read configuration from it, if it exists? That would be a nice improvement.
Another request – please add option to specify upload dir. Thanks.
Nice
Droopy is very cool, i like this
.
Note: when I send file named “droopy.py” droopy rewrite original file. Thx
[...] Droopy Website. [...]
Share & receive files easily with Droopy
There are tons of personal file sharing solutions out there, but most of them require both parties to install a client – which is not really an option if you’re dealing with folks who are on corporate networks, or maybe just don’t know that much abou…
yes, file overwriting should be disabled by default. someone can easily overwrite my files, if I run it in my home directory.
mdkir => mkdir
Nice tool!
Perhaps you do need the german translation for the next release?
de = {”maintitle”: “Datei senden”,
“submit”: “Senden”,
“sending”: “Sendet”,
“successtitle”: “Datei empfangen”,
“received”: “Datei empfangen!”,
“another”: “Weitere Datei senden”,
“errortitle”: “Fehler”,
“problem”: “Ein Fehler ist aufgetreten!”,
“retry”: “Wiederholen”,
“discover”: “Internet-Adresse dieser Seite feststellen”}
“Your computers address”:
Die droopy-Startseite sollte über die obige IP-Adresse erreichbar sein. Falls nicht, befindet sie sich eventuell hinter einer Firewall oder einem NAT-Router. Beides sollte so konfiguriert sein, dass Verbindungen über den Port 8000 erlaubt sind.
Regards from Germany and keep coding!
Michael
@all: Thanks for the kind feedback.
@Kamil: I agree with you that storing the options in a config file would be useful. Thanks for the suggestion.
@Petrof: currently, a file in the upload directory can be overwritten by uploading a file named identically. I used to think this was good enough but I am thinking again about that. (BTW you don’t need to rename the file to “droopy.py”, “droopy” is OK).
@robel: typo corrected, thanks.
@Michael: thanks for the german translation, i just added it. Also, thanks to Jiří who sent me the czech translation.
Hello Pierre
your script is very nice. It remembers me to ‘woof’, a similar script but instead uploading for serving things. It has an nice find_ip()-feature, download limitation, and an automatic gzip compression for directories.
You may want to have a closer look at
http://www.home.unix-ag.org/simon/woof.html
bye Steve
[...] Toutes les explications sont ici et le script est téléchargeable ici. C’est tellement simple qu’il fallait y penser ! [...]
[...] http://stackp.online.fr/?p=28) [...]
[...] Droopy: easy file receiving [...]
[17] ad droopy.py: Yes I know, but with .py it has better icon
.
OK, I added file numbering to avoid overwriting files. For example, if a file named foo.png is uploaded 3 times, 3 files are created: foo.png, foo-1.png, foo-2.png. Firefox and wget do this with downloaded files.
It´s a nice little script. Thanks!
)
Is there a simple way to center the text message under the upload box? (Never used Python before. Thats why it should be simple.
@Polo: you can use HTML markup in the message, for example:
droopy -m “<center>Hey, my name is Bond.</center>”
Thx!
A spanish translation:
es = {”maintitle”: “Enviar un archivo”,
“submit”: “Enviar”,
“sending”: “Enviando”,
“successtitle”: “Archivo recibido”,
“received”: “¡Archivo recibido !”,
“another”: “Enviar otro archivo.”,
“errortitle”: “Error”,
“problem”: “¡Hubo un problema!”,
“retry”: “Reintentar.”,
“discover”: “Descubrir la dirección de esta página”}
I don’t know if the special characters (opening exclamation, letters with accents) are a problem; I can change them to HTML codes.
If you want to allow a -o or –port parameter to specify the port, you could do it with
port = 8000
for o,a in opts:
if o in ["-p", "--picture"] :
picture = a
htmlpicture = ‘ ‘ \
% os.path.basename(picture)
elif o in ["-o", "--port"] :
port = a
elif o in ["-m", "--message"] :
import locale
lang, encoding = locale.getdefaultlocale()
if encoding != None: message = a.decode(encoding)
else: message = a
elif o in ['-d', '--directory']:
os.chdir(a)
elif o in ['-h', '--help']:
print USAGE
sys.exit(0)
# — Run the webserver
import socket
socket.setdefaulttimeout(3*60)
try:
if args[0:]:
port = int(args[0])
except:
and so on.
Best regards from Uruguay!
Hi Federico, and thank you. I’ve just added your translation.
You can already specify a port by passing it as last argument. For example:
droopy -m 'Hello!' 3000will launch droopy on http://localhost:3000. I must admit it is not very clearly documented.
Type
droopy --helpto see all options.Cheers!
Thanks for great little app.
for other remember to configure firewall. I had trouble for half hour because i forgot to configure firewall.
How do i configure it to run as daemon.
Hi, Nice app. You might want to checkout optparse instead of getopt. It drastically reduces the amount of code.
A Brasilian Portugues (pt-br) translation. Keep the great work with Droppy. It’s simple and amazing. Thanks.
pt-br = {”maintitle”: “Enviar um arquivo”,
“submit”: “Enviar”,
“sending”: “Enviando”,
“successtitle”: “Arquivo recebido”,
“received”: “Arquivo recebido !”,
“another”: “Enviar outro arquivo.”,
“errortitle”: “Problema”,
“problem”: “Ocorreu um problema !”,
“retry”: “Tente novamente”,
“discover”: “Descubra o endereço desta página”}
Hi, thanks for a great little app.
As a Mac user, I found that it will only run if you chmod it to be executable, and then use “open ~/Applications/droopy”. This is fine, but then it will not accept the arguments you propose, such as -m or -p because the open command will assume the arguments are for the open command and not for droopy.
I tried using python ~/Applications/droopy and so on but that fails, and the error seems to be “unknown locale: UTF-8″. However running “python ~/Applications/droopy –help” displays the right help file, but actually running it doesnt.
As it is its still usable but just thought you’d like to know and maybe can suggest if I’m doing something wrong.
Anyway thanks for the great app and keep up the excellent work!
hi Federico
this is my way to say thank you for this neato and useful app:
#addaed by Fabius @ 2008-08-28
it = {”maintitle”: “Invia un file”,
“submit”: “Invia”,
“sending”: “Invio in corso”,
“successtitle”: “File ricevuto”,
“received”: “File ricevuto!”,
“another”: “Invia un’altro file.”,
“errortitle”: “Errore”,
“problem”: “Si e’ veificato un errore!”,
“retry”: “Riprova”,
“discover”: “Mostra l’indirizzo di questa pagina”}
translations = {”cs”: cs, “de”: de, “en”: en, “es”: es, “fr”: fr, “it”: it}
bye!
PS: by the way feel free to contact me in case you plan to extend the app, for further Italian string translations
[...] solucao e simples, Droopy. Com Droopy voce cria uma interface web de forma rapida e simples, com o unico objetivo de abrir [...]
[...] é que entra o Droopy. Ele cria um pequeno servidor web que serve para receber arquivos. Ele é feito em Python e o [...]
[...] un server FTP sul nostro PC. Se nessuno di questi metodi vi soddisfa appieno, potete utilizzare Droopy, un nuovo interessante strumento Open Source. In poche parole si tratta di un semplice script [...]
another PS:
for those like me having problems with konqueror, just disable the swap() function on the main html template in the line:
A portuguese translation:
pt = {”maintitle”: “Enviar arquivo”,
“submit”: “Enviar”,
“sending”: “Enviando”,
“successtitle”: “Arquivo recibido”,
“received”: “Arquivo recibido!”,
“another”: “Enviar outro arquivo.”,
“errortitle”: “Erro!”,
“problem”: “Ocorreu um problema!”,
“retry”: “Tentar novamente.”,
“discover”: “Descobrir o endereço desta página”}
(sry: this blog don’t accept html code)
…in the line where you find the submit input control just changing the ‘onclick’ string with i.e. ‘Xonclick’
This project is great! Very simple, light, easy and immediate!
I think I’m gonna using it a lot from now!
Here’s an italian translation:
it = {”maintitle”: “Invia un file”,
“submit”: “Invia”,
“sending”: “Sto inviando”,
“successtitle”: “File ricevuto”,
“received”: “File ricevuto!”,
“another”: “Invia un altro file.”,
“errortitle”: “Errore”,
“problem”: “Si è verificato un errore!”,
“retry”: “Riprova.”,
“discover”: “Scopri l’indirizzo di questa pagina”}
A few suggestions:
- Possibility to set a max size limit (it’s bad to receive a 20 GB file…)
- Possibility to set a password (there’s a lot of idiots port-scanning and doing bad tricks)
- Disable “Send” button if textbox is empty
- Add a progress bar reporting upload status
Bye!
Here italian translation:
it = {”maintitle”: “Invia un file”,
“submit”: “Invia”,
“sending”: “Inviando”,
“successtitle”: “File ricevuto”,
“received”: “File ricevuto !”,
“another”: “Invia un’altro file.”,
“errortitle”: “Problema”,
“problem”: “C’è stato un problema !”,
“retry”: “Riprova.”,
“discover”: “Scopri l’indirizzo di questa pagina”}
Great work. Here is Turkish translation:
tr = {”maintitle”: “Dosya gönder”,
“submit”: “Gönder”,
“sending”: “Gönderiliyor…”,
“successtitle”: “Gönderildi”,
“received”: “Gönderildi”,
“another”: “Başka bir dosya gönder.”,
“errortitle”: “Problem.”,
“problem”: “Bir problem oldu !”,
“retry”: “Yeniden dene.”,
“discover”: “Bu sayfanın adresini bul”}
But except English i can’t work it translated other languages.
Hi and thank you for your great job! I’m using this in a plugin for emesene, the MSN client. I hope I’m not against your will, in that case I’ll have no problem in deleting it.
You can see the thread: http://emesene.org/smf/index.php/topic,1506.msg10836/topicseen.html
(ATM I’ve published only the “sender” part, to send file to other people. I’m still testing the “receiver” part, but it seems to work very well)
Again, thank you!
Great project!
Italian traslation errata corrige:
“another”: “Invia un altro file.”
without apostrophe, instead of :
“another”: “Invia un’altro file.”
“problem”: “Si e’ verificato un errore!”,
instead of:
“problem”: “Si e’ veificato un errore!”,
Bye.
@njkjta: and you’re right, lol, it’s me that I’m not able to press keys without errors lol!
Great way to send a file between computers in my home network.
Here is a dutch translation:
nl = {”maintitle”: “Verstuur een bestand”,
“submit”: “Verstuur”,
“sending”: “Bezig met versturen”,
“successtitle”: “Bestand ontvangen”,
“received”: “Bestand ontvangen!”,
“another”: “Verstuur nog een bestand.”,
“errortitle”: “Fout”,
“problem”: “Er is een fout opgetreden!”,
“retry”: “Nog eens.”,
“discover”: “Vind het adres van deze pagina”}
Suggestion: /var partitions are often kept small (mine is 1 GB) therefore I am limited in the size of the file I can receive this way. Perhaps it is possible to split really large files in chunks of 100MB or so. This would also eliminate the need to have more than double the free space than the file has as a size.
[...] Per maggiori informazioni visitare il sito ufficiale. [...]
If anybody interested:
a mod of droopy that reads options from a ini-like file. File could be in home (~/.droopyrc) or system wide (/etc/droopyrc
file is like:
[droopy]
picture=path/to/picture
message=message with html
port=8080
directory=directory/where/save/files
if you don’t put an option in file, this will be set to default value.
Option passed on command line will overwrite options read from droopyrc
http://kirgroup.com/extra/get.php?what=droopy.py
bye
Thanks to all of you for your contributions and suggestions.
@Daniel, fabius, Sergio, d1s4st3r, Fabrix, Heartsmagic, Tonio: thank you for the translations. With several different italian translations, what am i going to do?
Also, thanks to Djalel and Pedro who sent me the arabic and portuguese translations by e-mail. And to Francesco who sent me another italian translation.
@Pratik: you can use nohup to run it without keeping the terminal open:
nohup python ~/bin/droopy -m "Hello" > /dev/null &@VY: It seems to be a bug in the mac terminal. This has been reported to some mailing lists, and a solution is described here.
@Fabrix#35: I am adding support for configuration saving real soon
. The code is ready.
New release in a few days.
“With several different italian translations, what am i going to do?
”
hehe mine of course!
PS: sorry Pierre for calling you Federico I saw the ‘bug’ too late
bye!
Just out of interest:
Where are the files temperoarily stored, until they get stored in the destination directory ?
@Rock
Uploaded files are stored into the temporary directory (e.g. /tmp) and then copied to the specified directory. This part is handled by the CGI python module.
The advantage is that incomplete files are not visible to the user. The drawback is that file needs to be copied: it uses disk space and takes time.
I am now thinking about changing that.
Translations updated. I had to make a choice when I had several options. Also, the portuguese and portuguese-brasilian translations seemed close enough to put only the portuguese one. Thanks to you all anyway!
OK, I changed the script so that the file is uploaded directly into the specified directory. The file is called with a temporary name until the file transfer is complete. You do not need to have twice the file size as free disk space anymore.
This is definitely better.
Thanks for this nice tool !
[...] un server FTP sul nostro PC. Se nessuno di questi metodi vi soddisfa appieno, potete utilizzare Droopy, un nuovo interessante strumento Open Source. In poche parole si tratta di un semplice script [...]
Hi, I have a problem. I don’t see the msg “Discover the address of this page”, in the right corner. Why? I have used FF both Opera as browser, but nothing!
Tks
Hi sbis, the link “Discover the address of this page” is displayed only when you view the page at the address: http://localhost:8000.
I’m sorry, but when I try I don’t see anything.
I make this procedure:
1. run the program:
python /usr/bin/droopy -m “Ciao John, mandami il file.”
2. go to http://localhost:8000/
I see the box, and the two buttons “Sfoglia” and “Invia”, in Italian.
I have already open the port 8000 on my firewall.
What I wrong?
bye
Hi,
a very good job.
I’m reading it to learn something about python on web and I have a question. Is possible to add the download? for example: writing in a browser : http://localhost:8000/downloadablefile.tar and se the little window of download to save the file on the disk. I try to add some line in the GET def but I arrived only to get the headers or the crash of the browser that try to open the file as a text. I know that this features probably is not want, but if is not too long to explain, I will very pleased to know how i can add this function to the script.
Thank you
Batta
@sbis: Could you run this script, go to http://localhost:8000, then copy/paste what is printed on the terminal and send it to me? Some information about your operating system and the Python version (run python -V in a terminal) could also be useful.
@batta: Take a look at how it is implemented in the SimpleHTTPRequestHandler class, which is part of the Python library.
If what you want is to share the files in the directory, you could run this script that uses the Web server from the Python standard library (choose a different port if you want to run droopy at the same time).
[...] droopy – A mini Web server whose sole purpose is to let others upload files to your computer. [...]
Pierre, thanks for your help – I thought I’d share your advice here as others may find it useful.
If you want the message to show all the files already in the directory (or display from a file) and including newline use
droopy -m “<pre>$(ls -l)</pre>”
Thanks again.
Very cool stuff!
Thanks!
Can you make it https instead of http?
@thorny: It can be done, but I do not really plan on adding this feature.
I’ve added configuration saving and loading. To save options, add
--save-configto the options list. For example:Next time you’ll run:
the options will be automatically loaded.
You can delete the configuration file by typing:
finnish translation:
“maintitle”: “Lähetä tiedosto”,
“submit”: “Lähetä”,
“sending”: “Lähettää”,
“successtitle”: “Tiedosto vastaanotettu”,
“received”: “Tiedosto vastaanotettu!”,
“another”: “Lähetä toinen tiedosto.”,
“errortitle”: “Virhe”,
“problem”: “Virhe lahetettäessä tiedostoa!”,
“retry”: “Uudelleen.”,
“discover”: “Näytä tämän sivun osoite”}
thanks. really great stuff. this solved my problem with friends sending me files with msnmessenger(its sooo slooooow if it even success ever..
@ipppe: thank you, finnish translation added!
[...] Web Server There was an article on Slashdot recently featuring droopy, a python web server. Droopy’s sole purpose is “to let others upload files to your [...]
TIP!
you can log droopy using command:
droopy >& log.txt
or like this:
droopy | tee -a log.txt
Here is the Swedish translation:
sv = {”maintitle”: “Skicka en fil”,
“submit”: “Skicka”,
“sending”: “Skickar…”,
“successtitle”: “Fil mottagen”,
“received”: “Fil mottagen !”,
“another”: “Skicka en fil till.”,
“errortitle”: “Fel”,
“problem”: “Det har uppstått ett fel !”,
“retry”: “Försök igen.”,
“discover”: “Ta reda på adressen till denna sida”}
Keep up the good work.
Regards
David E
Swedish translation added. Thanks David.
Can you add an option for port. 8000 is hardcoded and might be in use by another process. Yeah, I know the file can be edited to change the 8000 to 8888 or whatever, but it would be nicer to have a –port option or similar.
There is a port option, it is the last argument. Type this to launch droopy on port 8888:
[...] http://stackp.online.fr/?p=28 … [...]
I simply love it. Have been needing something like this for years.
I have taken droopy and modified it to allow SSL connections. It requires installing pyOpenSSL, but it allows you to set it up for https connections.
I would like to have it reviewed by pierre if possible. Could I send it to you?
@greg: no problem
Pierre!
I just came along with your website and your programe Droopy – it looks very interesting but i have problems to download it. I use Ubuntu 8.10.
I would be very happy to give you the translation also in Slovene language.
Best. D.
@David: You must save this file, either by doing a right click->save link target, or a left click + File->save as.
You are welcome to translate it to slovene. This is what needs to be translated (the right column):
en = {"maintitle": "Send a file", "submit": "Send", "sending": "Sending", "successtitle": "File received", "received": "File received !", "another": "Send another file.", "errortitle": "Problem", "problem": "There has been a problem !", "retry": "Retry.", "discover": "Discover the address of this page"}Dear Pierre,
here is the Slovene translation (for country: Slovenia):
si = {”naslov”: “Pošlji datoteko”,
“potrdi”: “Pošlji”,
“pošiljam”: “Pošiljam”,
“uspelo_naslov”: “Datoteka prejeta”,
“prejeto”: “Datoteka prejeta !”,
“novo”: “Pošlji novo datoteko.”,
“napaka_naslov”: “Napaka”,
“napaka”: “Prišlo je do napake!”,
“ponovi”: “Poizkusi ponovno.”,
“poišči”: “Poišči naslov na tej strani”}
Best, David
Romanian translation:
ro = {”maintitle”: u”Trimite un fişier”,
“submit”: u”Trimite”,
“sending”: u”Se trimite”,
“successtitle”: u”Fişier recepţionat”,
“received”: u”Fişier recepţionat !”,
“another”: u”Trimite un alt fişier.”,
“errortitle”: u”Problemă”,
“problem”: u”A intervenit o problemă !”,
“retry”: u”Reîncearcă.”,
“discover”: u”Descoperă adresa acestei pagini”}
Slovene and Romanian translations added. Thank you david and Licaon.
Greek translation (ellinika)
el = {”maintitle”: “Στείλε ένα αρχείο”,
“submit”: “Αποστολή”,
“sending”: “Αποστέλλεται…”,
“successtitle”: “Επιτυχής λήψη αρχείου “,
“received”: “Λήψη αρχείου ολοκληρώθηκε”,
“another”: “Στείλε άλλο ένα αρχείο”,
“errortitle”: “Σφάλμα”,
“problem”: “Παρουσιάστηκε σφάλμα”,
“retry”: “Επανάληψη”,
“discover”: “Βρες την διεύθυνση της σελίδας”}
Thank you n2j3, I’ve just included your translation.
[...] Droopy is a wonderful little script. It’s wonderfully usefulwhen your friend has a file they need to send to you, and you don’t want to make them install anything. Just run it (possibly with some arguments) and it will start a little miniature web-server to which anyone can upload a file, and then it exits. Command line options make it possible to optionally display a message and/or an icon on the upload page. [...]
[...] Now cd to the directory in question a do a simple webshare command. That folder will be accessible from any browser by typing http://your_ip:8000 Alternatively, you can use Droopy. [...]
Hi , this is a great tool, thank you very much.
Now in a directory, I can use:
droopy -m “some message” 3000
to set up a upload page at port 3000, and use:
python -c “import SimpleHTTPServer;SimpleHTTPServer.test()”
in the same directory to set up a download page at port 8000.
This is very easy and works pretty well. But using 2 pages is a little inconvenient for others, so I’m thinking if this two can go together. Can you put a download part below the upload form, or can you give me some clue of how to doing it by myself. Thanks again.
[...] the Tips4Linux post also mentions Droopy which is so much easier to use although the guide in this link doesn’t quite spell out how to [...]
Droopy, damit es mal kein Extra Dienst sein muss
Die meisten kennen das, mal in einem Windowsnetz und es sollen Dateien geteilt werden, sei es im Up oder auch im Download. Ich gedenke nicht auf meinen Laptop einen Samba-server, oder einen Apachen mit WebDAV einzusetzen nur um mal die eine oder andere Da
Great tool! Many thanks for the effort. Small footprint, easy to use and right to the point. Well done.
Has anybody tried to submit Droopy to any form of penetration testing? I have a public IP address I would like to have this running on for an extended time period and it would be nice if it could stand up to all the malicious idiots trying to expand their botnets.
Here is the Danish translation:
da = {”maintitle”: “Send en fil”,
“submit”: “Send”,
“sending”: “Sender”,
“successtitle”: “Fil modtaget”,
“received”: “Fil modtaget!”,
“another”: “Send en fil til.”,
“errortitle”: “Problem”,
“problem”: “Det er opstået en fejl!”,
“retry”: “Forsøg igen.”,
“discover”: “Find adressen til denne side”}
Here’s Serbian translation:
rs = {”maintitle”: u”Pošalji fajl”,
“submit”: u”Pošalji”,
“sending”: u”Šaljem”,
“successtitle”: u”Fajl primljen”,
“received”: u”Fajl primljen !”,
“another”: u”Pošalji još jedan fajl.”,
“errortitle”: u”Problem”,
“problem”: u”Desio se problem !”,
“retry”: u”Pokušaj ponovo.”,
“discover”: u”Otkrij adresu ove stranice”}
Thanks for Droopy
@Jan: thanks for your feedback and your translation.
I use Droopy for quick file exchanges, but I do not run it 24/7. If you do, well, someone who scans ports could fill your drive with files if he has nothing better to do. Apart from that, I don’t see. If someone is aware of security issues, I am interested in hearing them.
I plan on adding an optional password, like in weblink.
@zhanglong: It is possible to do what you want by modifying the code. But would it really be useful ? In which situation ?
Thank you kotnik for the translation.
Great job!! A very useful utility!!
Here’s Korean translation.
kr = {”maintitle”: u”파일 보내기”,
“submit”: u”보내기”,
“sending”: u”보내는 중”,
“successtitle”: u”파일이 받아졌습니다”,
“received”: u”파일이 받아졌습니다!”,
“another”: u”다른 파일 보내기”,
“errortitle”: u”문제가 발생했습니다”,
“problem”: u”문제가 발생했습니다!”,
“retry”: u”다시 시도”,
“discover”: u”이 페이지 주소 알아보기”}
I found a bug that can’t write a file named unicode(korean).
line 465 (ver. 20090125) :
localfilename = os.path.join(directory, fileitem.filename)
should be changed to
localfilename = unicode( os.path.join(directory, fileitem.filename), ‘utf-8′ )
Thank you.
Thanks a lot xissy.
I noticed that self.address_string gives me “localhost.localdomain” instead of “localhost”, so it doesn’t allow me to check my IP address. I knew nothing about python, can you fix this little problem. I just manually change the code for now.
@Ning Bao, it should work now. Tell me if it does not.
Norwegian translation:
no = {”maintitle”: “Send en fil”,
“submit”: “Send”,
“sending”: “Sender”,
“successtitle”: “Fil mottatt”,
“received”: “Fil mottatt !”,
“another”: “Send en ny fil.”,
“errortitle”: “Feil”,
“problem”: “Det har skjedd en feil !”,
“retry”: “Send på nytt.”,
“discover”: “Finn addressen til denne siden”}
Thank you Preben.
Awesome tool !
Japanese translation:
ja = {”maintitle”: u”ファイル送信”,
“submit”: u”送信”,
“sending”: u”送信中”,
“successtitle”: u”受信完了”,
“received”: u”ファイルを受信しました!”,
“another”: u”他のファイルを送信する”,
“errortitle”: u”問題発生”,
“problem”: u”問題が発生しました!”,
“retry”: u”リトライ”,
“discover”: u”このページのアドレスを確認する”}
I modified the script by myself and it worked well.
Hi, adding slovak (Slovak republic) translation:
sk = {”maintitle”: “Pošli súbor”,
“submit”: “Pošli”,
“sending”: “Posielam”,
“successtitle”: “Súbor prijatý”,
“received”: “Súbor prijatý !”,
“another”: “Poslať ďalší súbor.”,
“errortitle”: “Chyba”,
“problem”: “Vyskytla sa chyba!”,
“retry”: “Skúsiť znova.”,
“discover”: “Zisti adresu tejto stránky”}
Satoru and CyberBoBaK, your translations are now included.
Thanks.
me encanta droopy chau
Awesome script. Now there is no need to use any complicated manual to connect windows and linux over network
Arigato for this
[...] algun amigo o compañero de fatigas (curro) te envie un fichero rapidamente, una opcion es emplear Droopy. Droopy es un script de Python que crea un web server en tu maquina para la recepcion de ficheros [...]
[...] Lo vi en Menéame que enlaza a Paraisolinux que, a su vez sacó el link (sin declarar bien la fuente) desde Stackp, la web oficial del programa [...]
Hi. Very nice work.
Like zhanglong message I want a download page for the upload directory.
Anybody do that?
Droopy is awesome. Great for my lan workflow. Seem to have problem though. I tried to upload a 2.13 gig file and it doesn’t do anything. Any one else having problems with large file uploads?
Hi.
How i can change permissions of a file?
Droopy save it with root own rw and i wish change this permissions to www-data. How can i do it?
Thanks.
Oh, nice software! I’ve written something like that, called “droppy” (http://hg.lophus.org/droppy). Didn’t know there’s something like that, friend of mine gave me the link
Droopy es un Script muy útil, en mi blog he puesto algunos detalles de cómo utilizarlo con no-ip.com
Thanks a lot for this nice script!
Thanks for share and tips.
Hi, just adding the Indonesian translation.
id = {”maintitle”: “Kirim sebuah berkas”,
“submit”: “Kirim”,
“sending”: “Mengirim”,
“successtitle”: “Berkas diterima”,
“received”: “Berkas diterima!”,
“another”: “Kirim berkas yang lain.”,
“errortitle”: “Permasalahan”,
“problem”: “Telah ditemukan sebuah kesalahan!”,
“retry”: “Coba kembali.”,
“discover”: “Kenali alamat IP dari halaman ini”}
Thank you Kemas.
I think you should access %AppData% on Windows instead of using %HOMEPATH%\Application Data, as the directory can have a different name on translated versions of Windows, and also might be somewhere other than the home directory.
A poster further upthread (Greg E.) mentioned having patched Droopy to work over SSL connections. Do you happen to have a copy of that patch? I wouldn’t mind taking a look at it. Thanks.
@d.w. Yes, basically Greg merged droopy with this HTTPS server. The problem is that it introduces a dependency on pyOpenSSL.