Nginx的Upload上传模块

前段时间做一个项目,需要上传文件,差不多需要20M左右,普通用php处理会比较麻烦,经常超时,而且大量占用资源。于是搜索了下,决定用nginx的upload上传模块来处理。

你可以在这里:http://www.grid.net.ru/nginx/upload.en.html 获取源码。下载以后需要重新编译nginx


1

2

3

./configure –add-module=/usr/local/nginx_upload_module-*

make

make install

重启nginx即可
以下是我的nginx配置文件

前端页面提交的时候直接提交到 http://test.local/upload 即可


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

server

{

        listen 80;

        server_name test.local;

        index index.php index.shtml index.htm index.html;

        root  /data/app/test.local/wwwroot;

        access_log  off;

        location /upload {

                upload_pass     /index.php?c=uploader&a=upload_server;

                upload_cleanup 400 404 499 500-505;

                upload_store    /data/app/test.local/upload_tmp;

                upload_store_access user:r;

                upload_limit_rate 128k;

                upload_set_form_field "${upload_field_name}_name" $upload_file_name;

                upload_set_form_field "${upload_field_name}_content_type" $upload_content_type;

                upload_set_form_field "${upload_field_name}_path" $upload_tmp_path;

                upload_aggregate_form_field "${upload_field_name}_md5" $upload_file_md5;

                upload_aggregate_form_field "${upload_field_name}_size" $upload_file_size;

                upload_pass_form_field "^.*$";

        }

        location ~ .*\.php?$

        {

                include fastcgi_params;

        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {

                expires      30d;

        }

        location ~ .*\.(js|css)?$ {

                expires      1d;

        }

}

大概解释一下每个参数


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

upload_pass 指明了需要后续处理的php地址

upload_cleanup 如果php出现400 404 499 500-505之类的错误,则删除上传的文件

upload_store 上传文件存放地址

upload_store_access 上传文件的访问权限,user:r是指用户可读

upload_limit_rate 上传限速,如果设置为0则表示不限制

upload_set_form_field 设定额外的表单字段。这里有几个可用的变量:

$upload_file_name 文件原始名字

$upload_field_name 表单的name值

$upload_content_type 文件的类型

$upload_tmp_path 文件上传后的地址

upload_aggregate_form_field 额外的变量,在上传成功后生成

$upload_file_md5 文件的MD5校验值

$upload_file_size 文件大小

upload_pass_form_field 从表单原样转到后端的参数,可以正则表达式表示

官方的例子是upload_pass_form_field "^submit$|^description$";意思是把submit,description这两个字段也原样通过upload_pass传递到后端php处理。如果希望把所有的表单字段都传给后端可以用upload_pass_form_field "^.*$";

时间: 2024-10-12 02:31:44

Nginx的Upload上传模块的相关文章

nginx上传模块nginx_upload_module和nginx_uploadprogress_module模块进度显示,如何传递GET参数等。

ownload:http://www.grid.net.ru/nginx/download/nginx_upload_module-2.2.0.tar.gzconfigure and make : ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module   --add-module=/data/software/lnmp1.

Nginx Upload Module 上传模块

传统站点在处理文件上传请求时,普遍使用后端编程语言处理,如:Java.PHP.Python.Ruby等.今天给大家介绍Nginx的一个模块,Upload Module上传模块,此模块的原理是先把用户上传的文件保存到临时文件,然后在交由后台页面处理,并且把文件的原名,上传后的名称,文件类型,文件大小set到页面. GitHub: https://github.com/vkholodkov/nginx-upload-module/tree/2.2 Site: http://wiki.nginx.or

解决nginx上传模块nginx_upload_module传递GET参数

解决nginx上传模块nginx_upload_module传递GET参数的方法总结 最近用户反映我们的系统只能上传50M大小的文件, 希望能够支持上传更大的文件. 很显然PHP无法轻易实现大文件上传, 因为会有各种各样的郁闷问题, 比如服务器超时等, 那么如何解决呢? 我想到了nginx_upload_module!!! 如何安装nginx_upload_module? 请看这里:nginx_upload_module安装使用教程 解决了大文件上传之后又遇到了新问题, 我们希望通过nginx_

Web文件上传模块 Plupload

Plupload 是一个Web浏览器上的界面友好的文件上传模块,可显示上传进度.图像自动缩略和上传分块.可同时上传多个文件. 示例代码: <!-- Load Queue widget CSS and jQuery --> <style type="text/css">@import url(css/plupload.queue.css);</style> <script type="text/javascript" src=

druapl-note1 本地开发上传模块不提示Ftp的警告

刚安装完drupal之后,通过drupalxray 看到其它drupal网站安装的一些模块,下载好模块并安装时,提示需要输入Ftp信息. 但是本地开发不输入Ftp信息的(也不清楚自己的系统是否开启Ftp功能,再折腾ftp会多花时间). 找到资料说是: make sure the folder /sites/default is OWNED by the user that executes the drupal scripts. On most Ubuntu installations, thi

UI标签库专题四:JEECG智能开发平台 Upload(上传标签)

?? 1. Upload(上传标签) 1.1.  参数 属性名 类型 描述 是否必须 默认值 id string 上传控件唯一标示 是 null name string 控件name 是 null formData string 上传文件提交后台的其他表单参数取ID 否 null uploader string 上传提交路径 是 null extend string 上传文件扩展名(可选类型组1,pic[*.jpg;*,jpeg;*.png;*.gif;*.bmp;*.ico;*.tif],2,

Nginx学习之:上传碰到“413”错误

那是因为nginx限制了上传文件大小,必须指定下. 在nginx.conf的http{}中增加client_max_body_size 20m;增加上传大小限制同时要修改php.ini中相关参数 [Resource Limits] max_execution_time = 800     ; Maximum execution time of each script, in seconds由于上传大文件比较费时,所以max_execution_time设为800,默认是30 [Data Hand

UI标签库专题四 JEECG智能开发平台 Upload 上传标签

1. Upload(上传标签) 1.1.  参数 属性名 类型 描述 是否必须 默认值 id string 上传控件唯一标示 是 null name string 控件name 是 null formData string 上传文件提交后台的其他表单参数取ID 否 null uploader string 上传提交路径 是 null extend string 上传文件扩展名(可选类型组1,pic[*.jpg;*,jpeg;*.png;*.gif;*.bmp;*.ico;*.tif],2,off

Layui前端上传模块

在工作中使用到layui,发现其上传功能并不是很适用于自己的项目.故此,借用其上传功能,自己将图片压缩并上传. Layui 上传图片官方文档:https://www.layui.com/doc/modules/upload.html HTML: <button type="button" class="layui-btn" id="test1"> <i class="layui-icon"></