歡迎您光臨本站 註冊首頁

goAhead上實現文件上傳到嵌入式Web伺服器上

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

本文內容概要:詳細描述了在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伺服器接收到的上傳文件數據寫到存儲系統。



[火星人 ] goAhead上實現文件上傳到嵌入式Web伺服器上已經有737次圍觀

http://coctec.com/docs/net/show-post-68214.html