这里用到HTML 标签的 enctype 属性。
enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。
默认地,表单数据会编码为 “application/x-www-form-urlencoded”。就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 “+” 加号,特殊符号转换为 ASCII HEX 值)。而当设置了该编码格式时,不能直接上传文件。
因此,这里我们使用另外一种编码格式,即multipart/form-data,该编码格式不对数据进行编码,而是直接上传二进制数据,form里面的input的值以二进制的方式传过去。
完整示例如下:
<form action="http://localhost/api/index.php"
method="post"
enctype="multipart/form-data">
<input type="file" name="image"/>
<input type="hidden" name="mod" value="user"/>
<input type="hidden" name="act" value="uploadPicture"/>
<button type="submit">提交</button>
</form>