您现在的位置:网站首页答辩论文计算机毕业设计计算机论文计算机应用论文

嵌入式Linux下基于CGI的文件上传下载的实现

  • 简介:(毕业论文 页数:41 字数:10816) 摘要:随着对嵌入式linux的深入研究,在此平台上的应用也越来越广泛。在嵌入式linux系统下较为常见的需求是上传和下载一些文件,这就需要掌握动态的WEB技术。本文针对在嵌入式系统中如何有效的实现动态Web内容,给出了一种解...
    • 请与管理员联系购买资料 QQ:5739126
  • 论文简介
  • 相关论文
  • 论文下载

(毕业论文 页数:41 字数:10816) 摘要:随着对嵌入式linux的深入研究,在此平台上的应用也越来越广泛。在嵌入式linux系统下较为常见的需求是上传和下载一些文件,这就需要掌握动态的WEB技术。本文针对在嵌入式系统中如何有效的实现动态Web内容,给出了一种解决方案。CGI是实现动态WEB技术之一。采用Perl语言或PHP设计的CGI程序,由于语言有内置支持,实现文件传输不难,但由于需要另外安装相应的解释器,使得某些场合应用受到限制;而采用C语言设计CGI,编译为二进制代码后,boa可以直接执行,而且文件比较小(只有几十K大小)。
本文首先对嵌入式linux系统移植进行简单介绍,然后在嵌入式linux上成功移植了boa服务器,并且介绍该系统boa的配置文件的详细设置,使得boa服务器能够正确运行CGI程序,并且能够处理请求。
关键词:嵌入式linux;boa;cgi;上传;下载


Implementation of File Upload and Download Based on
CGI Under Embedded Linux
Abstract
With the further investigation to embedded linux, the application on this platform is more and more extensive. The comparatively common demand is to upload and download some files under embedded linux system which needs to master dynamic WEB technology. This paper provide a kind of solution for how to realize dynamic Web content in the embedded system . CGI is one of the technology that realizes the dynamic WEB. It is easy for the CGI procedure which Adopt Perl language or PHP, because the languages has Built-in support .But because it is needed to install the corresponding explanation device in addition that make some occasions usage limitedded.Boa can be carried out directly after compiles to two mechanisms because CGI is designed by C language ,and the file is smaller (only as big as dozens of K ).
First this paper do the simple introduction to the transplantion of embedded linux system,then succeed in transplanting boa server on embedded linux, and introduce the detailed establishment of the disposition file of this system boa enable boa server to meet basic research of this subject's needs.

 

目录

1 引言 5
2 嵌入式linux的技术简介 5
2.1 交叉编译模式 5
2.2 编译安装arm内核 6
2.3 下载Linux内核和文件系统 8
2.4 启动ARM Linux系统 9
2.5 根文件系统 10
3 boa服务器的介绍及移植 12
3.1 boa服务器的简单介绍 12
3.2 boa服务器的编译 12
3.3 配置简单的boa服务器 12
4 CGI原理及程序设计 16
4.1 CGI的工作原理 16
4.2 CGI的传送方法 16
4.2.1 GET方法 16
4.2.2 POST方法 17
4.2.3 HEAD方法 17
4.3 环境变量 17
4.3.1 CGI环境变量 17
4.4 CGI的工作步骤 19
4.5 CGI程序设计 20
4.5.1 CGI程序的头部信息 20
4.5.2 位置信息 20
4.5.3 CGI程序的逻辑结构 21
4.5.4 CGI上传下载程序设计 21
附录 23
结束语 39
参考文献: 40
致 谢 42

1 引言
在嵌入式linux系统下,采用uclinux下的boa作为服务器,用C语言分别进行CGI的程序的设计,实现文件的上传与下载。CGI是一种通用的接口标准,CGI程序就是符合这种通用接口标准的,运行在Web服务器上的程序。它的工作就是控制信息要求,产生并传回所需要的文件或者完成期望的处理并返回结果;文件上传的原理是客户端使用表单提交文件数据,服务器端CGI按照特定格式解析数据,获得文件内容后进行保存或其他处理;文件下载相对比较简单,使用HTTP.GET方法,CGI程序在响应头信息中加入内容描述为attachment,文件名为欲下载的文件。内容类型设置为application/octetstream,再正确设置文件大小,将文件内容读出打印到标准输出即可。
uCLinux 环境下,主要有三个Web 服务器:httpd、thttpd和Boa。httpd是最简单的一个Web 服务器,它的功能最弱,不支持认证,不支持CGI。如果Web 服务器仅需提供一些静态页面,例如简单的在线帮助、系统介绍等,完全可以用静态服务器httpd来实现。thttpd和Boa都支持认证、CGI等,功能都比较全。若需提高系统的安全性,或需要与用户进行交互,例如数据查询、实时状态查询等,则必须使用动态Web技术,可以选择这两种服务器之一来实现。用c语言编辑cgi文件,实现利用浏览器对cgi文件的上传下载功能。
2 嵌入式linux的技术简介
由于嵌入式操作系统的巨大的商业价值和Linux 的开放性,嵌入式Linux 的开发和研究已经成为目前操作系统领域的一个热点。嵌入式Linux ( Embedded Linux) 是指对Linux 经过裁剪小型化后,可固化在存储器或单片机中,应用于特定嵌入式场合的专用Linux 操作系统。它是按照嵌入式操作系统的要求而设计的一种小型操作系统,由一个Kernel (内核) 及一些根据需要进行定制的系统模块组成。Kernel 一般只有几百kB 左右,即使加上其它必须的模块和应用程序,所需的存储空间也很小。
2.1 交叉编译模式
在PC主机上构建嵌入式Linux开发环境,需要安装适合于目标处理器的交叉编译器和调试器,以及将要使用的嵌入式Linux发行版本源代码。
(1) 安装交叉编译器
软件包:cross_2.95.3.tar.bz2
在/usr/local/目录下建立目录arm,将软件包解压至该目录即可(可能需要root权限)。
# mkdir /usr/local/arm
# tar xjvf cross_2.95.3.tar.bz2 –C /usr/local/arm
交叉编译器安装在/usr/local/arm/2.95.3目录下。
为Shell增加交叉编译器路径:
(a)使用export命令增加环境变量:
# export PATH=$PATH:/usr/local/arm/2.95.3/bin
(b)修改/etc/profile 文件:
# vi /etc/profile
增加路径设置:
pathmunge /usr/local/arm/2.95.3/bin。
2.2 编译安装arm内核
软件包:linux-2.4.18-rmk7-pxa1-mz5-zhiyuan.tar.bz2
(1)建立/zylinux目录,将ARM Linux源代码解压至该目录下。
# mkdir /zylinux
# tar xjvf linux-2.4.18-rmk7-pxa1-mz5-zhiyuan. tar.bz2 –C /zylinux
(2)编译嵌入式 Linux内核。进入主界面后,装载默认配置文件ZY2410x,然后建立依赖关系,最后编译即可。(在界面选择“Load an Configuration File”,装载默认配置文件ZY2410x。默认配置文件在arch/arm目录下。然后选择“EXIT”,在弹出的是否保存内核配置的界面选择“Yes”。)
# cd /zylinux/kernel
# make distclean (如果不是第一次编译)
编译Linux内核有三种方式:
make config --适用于终端和图形界面
make menuconfig --适用于终端和图形界面
make xconfig --使用于图形界面
其中,make menuconfig最常用,而且也很直观方便,就介绍这种方法。
进入/zylinux/kernel目录,执行make menuconfig命令,将会得到Linux内核的配置主界面。
# make menuconfig
根据提示,建立依赖关系:
# make dep
编译内核:
# make zImage
编译完毕,在arch/arm/boot目录下将会生成ARM Linux内核映象文件
zImage。这就是将要下载到目标系统的内核映象文件。

查看评论 已有0位网友发表了看法
  • 验证码: