I'm having a lot of difficulty getting file uploading to work using
Teapot/Zinc. The documentation is not entirely clear about how it's
supposed to work, and the example provided doesn't quite work. I'm
referring to section "4.6 Submitting HTML Forms" in "Enterprise Pharo – a
Web Perspective."
Here's my setup...
I have a Teapot route like:
GET: '/upload-handler' -> [ :req | self uploadHandler: req ];
where
uploadHandler: req
^ '<div>
<form method="POST" action="upload-handler"
enctype="multipart/form-data">
<input type="file" name="fileupload">
<input type="submit" value="Upload!">
</form>
</div>'
I have a submission form like:
GET: '/submission' -> [ :req | self submissionPage: req ];
POST: '/submission' -> [ :req | self handleSubmission: req ];
where
submissionPage: req
^ '<div>
<form method="POST">
<input type="file" name="fileupload" value="">
<input type="submit" value="Submit">
</form>
</div>'
handleSubmission: req
ZnClient new
url: 'http://174.117.171.194/upload-handler';
addPart: (ZnMimePart
fieldName: 'fileupload' fileNamed: 'S1-ABCD012345.st' );
post.
When I submit the submission form, I get "FileDoesNotExist: File @
/S1-ABCD012345.st".
It doesn't matter what path I use to get to S1-ABCD012345.st. I tried
"/Users/richardeng/Documents". I tried "/Documents". I tried "/". I don't
know what path it's looking for. The file is there – there's no reason why
it can't find it.
I guess I'm just not understanding how this whole thing is supposed to
work. Any ideas?
Richard