If I set up an HTML page with the following form:
<html>
<body>
<form action="upload_file.php"
method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
I can upload a file to upload_file.php where I can handle it using a PHP script.
For testing purposes, I need to do the same using raw HTTP via a PuTTY session.
I can do a normal POST (just sending text data) this way:
POST /test_post.php HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 11
name=myname
How can I send a file this way?
You have to use
multipartcontent-type and encode the file data into hex/binaryTry the following in telnet:
Remember that an extra newline is necessary between field name and its data. Also, update the
Content-Lengthvalue.