goAhead上实现文件上传到嵌入式Web服务器上

来源:LinuxIDC.com 作者:LinuxIDC.com
  

本文内容概要:详细描述了在goAhead 2.5上如何实现文件上传(上传文件)到服务器端的功能。

开发环境:

        宿    主   机:Windows XP;

        虚    拟   机:Ubuntu 9.10;

        交叉编译器:arm-uclibc-gcc(arm-linux-gcc-4.3.2可以顺利编译通过)

———————————————————————————————————

1. 说明

最近调试web文件上传到服务器功能,但在调试时,处理函数总是获取不到文件路径,百思不得其解,查了网上许多文章,但大多提到的是前端文件上传的原理、实现方式等,而未提供服务器端处理的实现(利用C函数实现)。此外,由于对web不了解,花了些时间研究web程序。

2. goAhead实现文件上传的方法

总得来说,goAhead上实现文件上传功能是比较容易的。因为有现成的代码可用,稍微移植下即可。

2.1 实现原理

使用html form即表单提交文件上传请求,web服务器核心处理接收客户端Post过来的文件数据(注意post的是二进制数据),最后,web服务器把接收到文件数据以二进制格式写到服务器本端存储系统。

2.2 前端设计

前端设计比较简单,就是设计一个form,type属性为file,本人是在goAhead-2.5附带的wwwdemo的asptest.asp网页上增加了一个这样的form。

  1. <html>  
  2. >  
  3. <head>  
  4.   
  5.   
  6.   
  7. <link rel="stylesheet" href="/style/normal_ws.css" type="text/css">  
  8. <language=javascript %>  
  9.   
  10. function uploadFileSubmit()  
  11. {  
  12. //  alert(document.getElementById("document.softupdate"));  
  13.     return;  
  14. }  
  15.   
  16. head>  
  17.   
  18. <body>  
  19.   
  20. <h1>ASP / JavaScript? Testh1>  
  21. <h2>Expanded ASP data: <% aspTest("Peter Smith", "112 Merry Way"); %>h2>  
  22.   
  23. <P>  
  24. <% var z; \  
  25.    for (z=0; z<5zz=z+1) \  
  26.      { \  
  27.      if (z<=2) \  
  28.         write(z+" is less than 3<br>"); \  
  29.      else if (z==3) \  
  30.         write(z+" is equal to 3<br>"); \  
  31.      else \  
  32.         write(z+" is greater than 3<br>"); \  
  33.      } \  
  34. %>  
  35. P>  
  36.   
  37.   
  38.   
  39.   
  40. <span style="color:#3333ff;">  
  41. <h1>GoForm upload file testh1>  
  42. <form id="softupdate" action=/goform/formUploadFileTest method=POST enctype="multipart/form-data">  
  43.     <table>  
  44.         Select file: <td> <input id="fileupload" type="file" name="fileupload" size=60 value="">    td>  
  45.         <td> <input id="fileuploadsubmit" type="submit" name="update" value="update" onClick="uploadFileSubmit()">  td>  
  46.     table>  
  47. form>  
  48.   
  49.   
  50. span>  
  51.   
  52. body>  
  53. html>  

其中,enctype参数用来设置表单的MIME编码方式,在进行文件(或同时包含文本框)上传时,必须将其属性设置为"multipart/form-data";formUploadFileTest 是web服务器定义的一个处理函数,用于把web服务器接收到的上传文件数据写到存储系统。


时间:2011-10-18 10:30 来源:LinuxIDC.com 作者:LinuxIDC.com 原文链接

好文,顶一下
(1)
20%
文章真差,踩一下
(4)
80%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量