From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Sebastian Tennant Newsgroups: gmane.lisp.guile.user Subject: Re: Uploading Word documents, PDFs, PNG files etc Date: Tue, 19 May 2009 04:48:13 +0000 Message-ID: <7i0dbsvm.fsf@vps203.linuxvps.org> References: <87vdo7au56.fsf@ambire.localdomain> <87vdo5qc52.fsf@gnu.org> <7i0kzuog.fsf@vps203.linuxvps.org> <3ae3aa420905131223i3c7b83b0tf5a6ec9b200a8704@mail.gmail.com> <200905140347.n4E3l6LB003384@fcs13.keithdiane.us> <87ljove6oa.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1242708526 16227 80.91.229.12 (19 May 2009 04:48:46 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 19 May 2009 04:48:46 +0000 (UTC) To: guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Tue May 19 06:48:39 2009 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1M6HFm-0000A6-F4 for guile-user@m.gmane.org; Tue, 19 May 2009 06:48:38 +0200 Original-Received: from localhost ([127.0.0.1]:49057 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1M6HFl-0000gL-SZ for guile-user@m.gmane.org; Tue, 19 May 2009 00:48:37 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1M6HFh-0000g6-7Z for guile-user@gnu.org; Tue, 19 May 2009 00:48:33 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1M6HFc-0000fr-LV for guile-user@gnu.org; Tue, 19 May 2009 00:48:32 -0400 Original-Received: from [199.232.76.173] (port=34116 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1M6HFc-0000fo-Eq for guile-user@gnu.org; Tue, 19 May 2009 00:48:28 -0400 Original-Received: from main.gmane.org ([80.91.229.2]:33848 helo=ciao.gmane.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1M6HFc-0000SD-1g for guile-user@gnu.org; Tue, 19 May 2009 00:48:28 -0400 Original-Received: from list by ciao.gmane.org with local (Exim 4.43) id 1M6HFY-0003LG-R5 for guile-user@gnu.org; Tue, 19 May 2009 04:48:24 +0000 Original-Received: from vps203.linuxvps.org ([91.186.7.203]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 19 May 2009 04:48:24 +0000 Original-Received: from sebyte by vps203.linuxvps.org with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 19 May 2009 04:48:24 +0000 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 48 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: vps203.linuxvps.org X-Composed-In: Gnus User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/22.2 (gnu/linux) Cancel-Lock: sha1:ODN+HAMzq32kLjEwzDZbwnBJ3wI= X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:7309 Archived-At: Hi Ludo, Thanks for responding. I know this isn't really your 'thing' (for want of a better word). Quoth ludo@gnu.org (Ludovic Courtès): >> cgi.scm currently uses the following patterns and I can't think of an >> alternative way of doing it: >> >> (let ((name-rx (make-regexp "name=\"([^\"]*)\"")) >> (filename-rx (make-regexp "filename=\"*([^\"\r]*)\"*")) >> (type-rx (make-regexp "Content-Type: ([^\r]*)\r\n" regexp/icase)) >> (value-rx (make-regexp "\r\n\r\n"))) >> ...) > > Can't this be applied just to the header part of the blob rather than to > the whole blob, including binary data? The problem is that there's no way of being sure how many header lines will precede the (possibly) binary blob in any given part (RFC 2388). -----------------------------1307099961880952181245320094\x0d Content-Disposition: form-data; name=\"TABLE\"\x0d \x0d \x0d -----------------------------1307099961880952181245320094\x0d Content-Disposition: form-data; name=\"File-Upload\"; filename=\"null-char.txt\"\x0d Content-Type: text/plain\x0d \x0d foo^@bar \x0d -----------------------------1307099961880952181245320094\x0d Content-Disposition: form-data; name=\"Button\"\x0d \x0d Upload\x0d -----------------------------1307099961880952181245320094--\x0d Content-Disposition is mandatory, but Content-Type is optional (defaulting to text/plain) as is Content-Transfer-Encoding, so the "header part" of any given MIME part may be a single line or it may be three. Seb -- Emacs' AlsaPlayer - Music Without Jolts Lightweight, full-featured and mindful of your idyllic happiness. http://home.gna.org/eap