# 自动上传文件 
  
构造上传文件的表单数据较复杂,标准库提供了 web.multipartFormData 类可以自动构造上传文件表单的数据包。

## web.multipartFormData

1. 语法：   

  
   ```aardio
   import web.multipartFormData;
   var form = web.multipartFormData();
   form.add("字段名","字段值")
   form.add("上传字段名","@上传路径");
   ```  

  
2. 说明：   
  
   web.multipartFormData是一个类,创建的表单对象可以使用add(字段名,段值)函数添加上传数据，字段名指网页表单中输入控件的名字(该控件html源码中的name属性)，可添加多个字段,如果该字段的值第一个字符是"@"字符则上传该文件。在标准库 web.rest.client中有上传文疾糠州有用到 web.multipartFormData 可以参考一下源码。  

3. 示例： 

  
   ```aardio
   import web.form;
   /*DSG{{*/
   var winform = ..win.form( text="自动上传";right=744;bottom=523 ) 
   /*}}*/

   var wb = web.form( winform ); //创建 Web 窗体
   winform.show(); 

   //构建上传数据包  
   import web.multipartFormData;
   var formData = web.multipartFormData();
   formData.add("username","用户名");
   formData.add("password","密码");
   formData.add("filename","@\main.aardio"); 

   //上传数据
   wb.post("http://httpbin.org/post"
   , formData.readAll() //上传数据包 
   , formData.contentHeader()  //要添加的HTTP头
   );

   //启动消息循环
   win.loopMessage();
   ```