shell-script-pt
[Top][All Lists]
Advanced

[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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]