[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Script de Upload
From: |
Giuseppe Fontana |
Subject: |
Script de Upload |
Date: |
Fri, 17 Mar 2006 10:25:20 -0300 |
User-agent: |
Thunderbird 1.5 (X11/20051201) |
Olá pessoal. Peguei um Script do Thobias Salazar Trevisan na Internet,
que faz Upload de arquivos em HTML com CGI. Mas para isso, eu não posso
usar o Perl, nem PHP, Python, apenas bash.
O Script foi feito para enviar somente arquivos de texto, então queria
adaptar ele para enviar arquivos de conteúdo binário, como fotos, docs, etc.
Pedi ajuda ao Flavio Torres, e ele coitado acabou perdendo dois dias
comigo tentando descobrir uma forma de enviar os dados. Inclusive
chegamos a conclusão que o Script só envia arquivos de texto.
Abaixo vai os Scripts:
----------------------------------------------------------------------------------------------------------
Upload.htm
<html>
<body>
<form enctype="multipart/form-data" action="/cgi-bin/upload.cgi"
method="post">
Enviar arquivo: <input name="userfile" size="30" type="file">
<BR><BR>
<input type="submit" value="Envia" name="Envia">
</form>
</body>
</html>
----------------------------------------------------------------------------------------------------------
Upload.CGI
#!/bin/sh
echo "<html><body><pre>"
# Limite
boundary=$(export | sed '/CONTENT_TYPE/!d;s/^.*dary=//;s/.$//')
# pegamos toda a entrada do POST e colocamos em VAR
VAR=$(sed -n '1,$p')
# pegamos o nome do arquivo que foi feito o upload
FILENAME=$(echo "$VAR" | sed -n '2!d;s/\(.*filename=\"\)\(.*\)\".*$/\2/;p')
# pegamos somente o conteudo do arquivo do upload
FILE=$(echo "$VAR" | sed -n "1,/$boundary/p" | sed '1,4d;$d')
# redirecionamos o conteudo do arquivo para um arquivo local no server
echo "$FILE" | sed '$d' > "/tmp/$FILENAME"
echo "</pre></body></html>"
----------------------------------------------------------------------------------------------------------
Qualquer opinião é bem vinda!
Atenciosamente,
Giuseppe
- Script de Upload,
Giuseppe Fontana <=