HTML表单通过隧道PUT方法,我不明白的东西

HTML can't be used to submit a PUT request via a form. You can only do it via javascript as an ajax request. Ok. On another post someone said (with +40 on the answer):

Browsers only support POST and GET, if you need PUT, you have to send the form via post/get and then do the proper PUT request on server-side.

Does this mean that you could upload a file using a form (lets say POST method), but the server interprets it as PUT method? But if the request is handled as a POST method, you couldn't stream data to the server the same way you could with PUT, so I don't understand. Please could someone clarify?

You can only use POST or GET in the browser. Some REST implementations use a 'method override' variable to indicate to the server that you actually want a different method (see http://docs.slimframework.com/ search for 'Method Override')

This is just a simple hidden variable and you can apply your own conventions to it, then just react to it in your server side code.

EDIT: (clarification) Browsers do not support anything other than POST/GET via standard HTML forms. You can set up a mechanism to let your application know that you meant to send via another method, but the web server will still handle it as a POST.