goahead文件上传
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文件上传相关推荐
- Linux下goahead3.3.6的移植以及文件上传下载示例
#开源库下载 下载地址 https://embedthis.com/goahead/download.html 在下载地址中可以看到说明 Source Code Repository To acces ...
- springboot设置文件上传大小(tomcat默认1M)
application.yml # 设置文件上传大小(tomcat默认1M) server:tomcat:max-http-form-post-size: -1 spring:servlet:mult ...
- 将文件上传至ftp服务器,FTP文件上传工具类,将文件上传至服务器指定目录
将文件上传至ftp服务器,传入File对象,将文件上传至ftp服务器 需要配置修改的点: 1. 服务器ip端口(服务器ip 端口22/21). 2. 服务器账号密码(服务器登录用户名密码). 3. 上 ...
- Springboot 多文件上传
其实多个文件和单个文件上传是一样的,可以使用同一个Controller 添加依赖 <!-- https://mvnrepository.com/artifact/commons-fileuplo ...
- django文件上传
Django在处理文件上传时,文件数据被打包封装在request.FILES中. 一.简单上传 首先,写一个form模型,它必须包含一个FileField: # forms.py from djang ...
- spring boot 文件上传工具类(bug 已修改)
以前的文件上传都是之前前辈写的,现在自己来写一个,大家可以看看,有什么问题可以在评论中提出来. 写的这个文件上传是在spring boot 2.0中测试的,测试了,可以正常上传,下面贴代码 第一步:引 ...
- 模拟文件上传(一):手动文件上传
关于上传文件,首先我的第一个案例是一个文本文件的上传,简单容易上手! 首先我们上传文件肯定就属于实体内容部分了:所以不能过GET方式请求了,要通过POST方式请求: 因为: 1.get方式是URL传值 ...
- Java中的文件上传2(Commons FileUpload:commons-fileupload.jar)
相比上一篇使用Servlet原始去实现的文件上传(http://www.cnblogs.com/EasonJim/p/6554669.html),使用组件去实现相对来说功能更多,省去了很多需要配置和处 ...
- 转 [JAVA] 使用 common-fileupload 实现文件上传
就在前段时间,还在苦于找到不到合适的上传组件,虽然很早就知道了 common-fileupload,但当时却因为没有找到如何获取表单参数的方法而使用 jspSmartUpload,历尽艰辛终于找到了它 ...
最新文章
- Mac制作Ubuntu USB启动盘
- 树莓派3b与散热风扇
- 计算机专业去广发银行,2019广发银行招聘计算机模拟试题
- java读取对象失败_jsp exception对象获取异常信息
- 使用OSHI 检索系统信息,超牛逼、超级秀、超级巴适!!快来看看吧!不然你会后悔的!!666
- 调节e18-d80nk的测量距离_水准测量基础知识
- matlab中弹性碰撞课程设计,完全弹性碰撞matlab.doc
- Bootstrap模态框如何垂直居中?
- php 将url转成伪静态,php兑现url伪静态化,全过程详解
- 网易云音乐会员下载正常音乐格式
- Google 2018 更新内容
- Linux驱动入门总结
- 2020中兴捧月傅里叶派记录
- 秦九韶多项式运算时间java_多项式计算之秦九韶算法
- 分组密码算法CBC密文窃取模式(Ciphertext Stealing for CBC Mode)研究
- ApeCoin计划推出自己的区块链,Messari分析师们怎么看?
- 下载丨66页PDF,云和恩墨技术通讯(2022年7月刊)
- Scrapy框架的使用之Scrapy入门
- ubuntu 安装tar.gz文件
- C++ STL函数库 stack (henu.hjy)
热门文章
- 计算机学术期刊、会议分类等级
- Unity人工智能AI编程知识
- !!Python基础认知学习课件
- Word处理控件Aspose.Words功能演示:在Java中将Word文档以邮件形式发送
- PLC信号处理之平均值滤波(SMART PLC指针应用)
- 天天酷跑php源码_Java实现天天酷跑小游戏完整代码(附源码)
- 易语言数据类型内存分布格式
- Android实现 通过手势随意缩放、移动ImageView图片
- mysql 端口可以telnet_telnet 查看端口是否可访问
- wifi mouse hd for linux,wifi mouse电脑版(无线鼠标控制助手)V1.7.3 官方版