1.goahead文件上传需要修改与添加的源码

  • 在goahead.c文件中添加一个并注册一个接受并客户端(浏览器)文件的action,代码示例:
static void uploadFileAction(Webs *wp)
{WebsKey         *s;WebsUpload      *up;char            *upfile;websSetStatus(wp, 200);websWriteHeaders(wp, -1, 0);websWriteHeader(wp, "Content-Type", "text/plain");websWriteEndHeaders(wp);/****保存上传的文件并打印上传文件的具体信息/if (scaselessmatch(wp->method, "POST")) {for (s = hashFirst(wp->files); s; s = hashNext(wp->files, s)) {up = s->content.value.symbol;websWrite(wp, "FILE: %s\r\n", s->name.value.string);websWrite(wp, "FILENAME=%s\r\n", up->filename);websWrite(wp, "CLIENT=%s\r\n", up->clientFilename);websWrite(wp, "TYPE=%s\r\n", up->contentType);websWrite(wp, "SIZE=%d\r\n", up->size);upfile = sfmt("%s/tmp/%s", websGetDocuments(), up->clientFilename);//文件存放的地方if(access(up->filename, 0) !=0){error("uploadTest() %s DOESN'T EXISIT!",up->filename);}if(access(upfile, 0) !=0){error("uploadTest() %s DOESN'T EXISIT!",upfile);}if (rename(up->filename, upfile) < 0){error("Cannot rename uploaded file: %s to %s, errno %d", up->filename, upfile, errno);}wfree(upfile);}websWrite(wp, "\r\nVARS:\r\n");for (s = hashFirst(wp->vars); s; s = hashNext(wp->vars, s)) {websWrite(wp, "%s=%s\r\n", s->name.value.string, s->content.value.string);}}websDone(wp);
}
  • 如果是在windows执行goahead服务器,那就修改Goahead-windows-default-me.h或Goahead-windows-static-me.h文件,如果是在linux系统下执行goahead服务器就修该Goahead-linux-default-me.h或Goahead-linux-static-me.h。修改如下:

修改宏ME_GOAHEAD_UPLOAD_DIR,这个宏是用来处理文件上传时,设置的一个暂存的文件夹,修改成设置的暂存文件的目录,例如 修改为:#define ME_GOAHEAD_UPLOAD_DIR “D:/test”

  • 修改http.c文件
    删除或注释掉static void parseHeader(Webs *wp)函数中的如下代码(为了存放大于2M的文件):
   if (wp->rxLen > ME_GOAHEAD_LIMIT_POST) {websError(wp, HTTP_CODE_REQUEST_TOO_LARGE | WEBS_CLOSE, "Too big");return;}

2.前台代码示例

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body><form action="/action/uploadTest" method ="post" enctype="multipart/form-data"><input type="file" name="files[]" multiple/><input type="submit" value="提交"></form></body>
</html>

3.结果

goahead文件上传相关推荐

  1. Linux下goahead3.3.6的移植以及文件上传下载示例

    #开源库下载 下载地址 https://embedthis.com/goahead/download.html 在下载地址中可以看到说明 Source Code Repository To acces ...

  2. springboot设置文件上传大小(tomcat默认1M)

    application.yml # 设置文件上传大小(tomcat默认1M) server:tomcat:max-http-form-post-size: -1 spring:servlet:mult ...

  3. 将文件上传至ftp服务器,FTP文件上传工具类,将文件上传至服务器指定目录

    将文件上传至ftp服务器,传入File对象,将文件上传至ftp服务器 需要配置修改的点: 1. 服务器ip端口(服务器ip 端口22/21). 2. 服务器账号密码(服务器登录用户名密码). 3. 上 ...

  4. Springboot 多文件上传

    其实多个文件和单个文件上传是一样的,可以使用同一个Controller 添加依赖 <!-- https://mvnrepository.com/artifact/commons-fileuplo ...

  5. django文件上传

    Django在处理文件上传时,文件数据被打包封装在request.FILES中. 一.简单上传 首先,写一个form模型,它必须包含一个FileField: # forms.py from djang ...

  6. spring boot 文件上传工具类(bug 已修改)

    以前的文件上传都是之前前辈写的,现在自己来写一个,大家可以看看,有什么问题可以在评论中提出来. 写的这个文件上传是在spring boot 2.0中测试的,测试了,可以正常上传,下面贴代码 第一步:引 ...

  7. 模拟文件上传(一):手动文件上传

    关于上传文件,首先我的第一个案例是一个文本文件的上传,简单容易上手! 首先我们上传文件肯定就属于实体内容部分了:所以不能过GET方式请求了,要通过POST方式请求: 因为: 1.get方式是URL传值 ...

  8. Java中的文件上传2(Commons FileUpload:commons-fileupload.jar)

    相比上一篇使用Servlet原始去实现的文件上传(http://www.cnblogs.com/EasonJim/p/6554669.html),使用组件去实现相对来说功能更多,省去了很多需要配置和处 ...

  9. 转 [JAVA] 使用 common-fileupload 实现文件上传

    就在前段时间,还在苦于找到不到合适的上传组件,虽然很早就知道了 common-fileupload,但当时却因为没有找到如何获取表单参数的方法而使用 jspSmartUpload,历尽艰辛终于找到了它 ...

最新文章

  1. Mac制作Ubuntu USB启动盘
  2. 树莓派3b与散热风扇
  3. 计算机专业去广发银行,2019广发银行招聘计算机模拟试题
  4. java读取对象失败_jsp exception对象获取异常信息
  5. 使用OSHI 检索系统信息,超牛逼、超级秀、超级巴适!!快来看看吧!不然你会后悔的!!666
  6. 调节e18-d80nk的测量距离_水准测量基础知识
  7. matlab中弹性碰撞课程设计,完全弹性碰撞matlab.doc
  8. Bootstrap模态框如何垂直居中?
  9. php 将url转成伪静态,php兑现url伪静态化,全过程详解
  10. 网易云音乐会员下载正常音乐格式
  11. Google 2018 更新内容
  12. Linux驱动入门总结
  13. 2020中兴捧月傅里叶派记录
  14. 秦九韶多项式运算时间java_多项式计算之秦九韶算法
  15. 分组密码算法CBC密文窃取模式(Ciphertext Stealing for CBC Mode)研究
  16. ApeCoin计划推出自己的区块链,Messari分析师们怎么看?
  17. 下载丨66页PDF,云和恩墨技术通讯(2022年7月刊)
  18. Scrapy框架的使用之Scrapy入门
  19. ubuntu 安装tar.gz文件
  20. C++ STL函数库 stack (henu.hjy)

热门文章

  1. 计算机学术期刊、会议分类等级
  2. Unity人工智能AI编程知识
  3. !!Python基础认知学习课件
  4. Word处理控件Aspose.Words功能演示:在Java中将Word文档以邮件形式发送
  5. PLC信号处理之平均值滤波(SMART PLC指针应用)
  6. 天天酷跑php源码_Java实现天天酷跑小游戏完整代码(附源码)
  7. 易语言数据类型内存分布格式
  8. Android实现 通过手势随意缩放、移动ImageView图片
  9. mysql 端口可以telnet_telnet 查看端口是否可访问
  10. wifi mouse hd for linux,wifi mouse电脑版(无线鼠标控制助手)V1.7.3 官方版