zoukankan      html  css  js  c++  java
  • web服务器上传文件过程

    web服务器上传文件过程

    通过web服务器上传文件,需要提前准备好下面3步,然后才能通过第4步上传文件
    1、web服务器的配置
    1.1 将代码src目录中的select.c文件的170行的REQUEST_TIMEOUT改为10*REQUEST_TIMEOUT
    1.2 在buildroot中选中boa后保存编译,然后更新nfs_root中内容;
    1.3 重启单板
    1.4 配置/etc/boa/boa.conf文件
    1.4.1 屏蔽掉Group nobody,增加Group 0
    1.4.2 去掉Errorlog前的屏蔽
    1.4.3 去掉Accesslog前的屏蔽
    1.4.4 去掉ServerName前的屏蔽
    1.4.5 去掉DocumentRoot前的屏蔽
    1.4.6 去掉UserDir前的屏蔽
    1.4.7 去掉DirectoryIndex前的屏蔽
    1.4.8 KeepAliveMax改为10000
    1.4.9 KeepAliveTimeout改为1000
    1.4.a 去掉ScriptAlias前的屏蔽,同时将值改为/cgi-bin/ /var/www/cgi-bin/
    1.4.b 如果没有SinglePostLimit则需要手工添加,添加后将值改为1048576000,表示支持1G大小

    2、服务器上添加cgi程序
    以下为cgi程序
    #include <stdio.h>
    #include "cgi-lib.h"
    #include "html-lib.h"
    int main()
    {
    llist entries;

    char *value;
    html_header();
    if (read_cgi_input(&entries) <= 0 ||
    (value = cgi_val(entries, "swimage")) == 0)
    h1("<BR />Error: failed to read "swimage" CGI input...<BR /> ");
    else
    {
    printf("<BR><H1>File "%s" successfully uploaded!</H1> ", value);
    if (strcmp(value, "zImage") == 0)
    {
    h1("OK, that is a zImage: need to store it in flash...<BR /> ");
    }
    }

    list_clear(&entries);
    h2("Back to the <A HREF=/>main menu</A>... ");
    html_end();
    return 0;
    }

    以下为cgi程序对应的Makefile
    UCLINUX_DIST=/local/nios2-linux/uClinux-dist-ndk
    LIB_CGIHTML=$(UCLINUX_DIST)/user/cgihtml
    CC=nios2-linux-uclibc-gcc
    CFLAGS= -I$(SRC_DIR) -I. -I$(LIB_CGIHTML)
    -O2 -g -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED
    -fno-builtin -D__adjtimex=adjtimex


    LDFLAGS= -Wl,-d -Wl,-elf2flt $(LIB_CGIHTML)/cgihtml.a
    mycgipgm: mycgipgm.o
    $(CC) -o $@ $< $(LDFLAGS)
    install: mycgipgm
    cp mycgipgm $(UCLINUX_DIST)/vendors/Altera/nios2
    clean:
    rm -f mycgipgm mycgipgm.o
    将编译生成的mycgipgm放到/var/www/cgi-bin中,如果没有cgi-bin目录则手工创建

    3、web页面中增加上传文件功能
    在/var/www/下面新建index.html文件和cgi-bin文件夹
    index.html文件内容如下
    <html>
    <head>
    <title>Welcome to zteos</title>
    </head>
    <body>
    <h1>Welcome to zteos!</h1>
    <br />
    <p>good morning, today is monday and have a fun</p>
    <hr />
    <H1>SW Upload</H1>
    <FORM ACTION="/cgi-bin/mycgipgm" METHOD=POST ENCTYPE="multipart/form-data">
    <INPUT TYPE=file name="swimage" /> <BR />
    <INPUT TYPE=submit VALUE="Submit"> <INPUT TYPE=reset VALUE="Reset">
    </FORM>

    </body>
    </html>
    cgi-bin中放置步骤2编译生成的cgi程序

    4、上传文件
    以上操作完成后,在命令行中输入boa,如果没有错误boa就已经启动运行
    此时在IE浏览器中输入http://192.168.1.100,这里需要看实际IP地址,就会出现相应的web页面,按页面中的提示即可
    完成文件的上传。
    这里上传的文件会保存在/tmp目录下面
    注意/tmp目录的权限,如果权限不够,会出现失败
    注意/tmp目录中空间的大小,如果磁盘空间大小小于要存放的文件,也会上报失败

    5、错误信息查看
    如果有错误出现,错误信息会出现在/var/log/boa/目录下,分别为正常日志和错误日志信息

  • 相关阅读:
    细说java中的类
    使用LayUI操作数据表格
    使用LayUI展示数据
    一步一步做搜索(一)
    试图加载格式不正确的程序
    自己实现spring核心功能 三
    SpringMvc请求处理流程与源码探秘
    设计模式之代理模式
    爬虫功能介绍
    爬虫监控帮助文档汇总
  • 原文地址:https://www.cnblogs.com/sstudy-linux/p/4911191.html
Copyright © 2011-2022 走看看