`

nginx upload模块使用

阅读更多

安装

#wget -O nginx-upload-module.tar.gz https://github.com/vkholodkov/nginx-upload-module/archive/2.2.0.tar.gz
#tar zxvf nginx-upload-module.tar.gz
重新编译nginx
--add-module=指定模块目录

 

nginx配置

location /upload {
                upload_pass   /test.php;
                upload_store /tmp/nginx_upload;
                upload_store_access user:rw;
                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 "^.*$";
                upload_cleanup 400 404 499 500-505;
        }   
    
        location ~ \.php$ {
                try_files $uri =404;

                include fastcgi.conf;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param env development;
        }  

 

上传页面

<html>
        <body>
                <h2>Select files to upload</h2>
                <form name="upload" method="POST" enctype="multipart/form-data" action="http://114.215.142.108:8080/upload">
                        <input type="file" name="file1"><br>
                        <input type="file" name="file2"><br>
                        <input type="file" name="file3"><br>
                        <input type="submit" name="submit" value="Upload">
                        <input type="hidden" name="test" value="value">
                </form>
        </body>
</html>

 

后端处理test.php

<?php
for($i=1; $i<=3; $i++) {
        if (isset($_POST["file{$i}_path"]) && $_POST["file{$i}_name"] && $_POST["file{$i}_md5"]) {
                $src = $_POST["file{$i}_path"];
                $md5 = $_POST["file{$i}_md5"];  
                $dir = '/tmp/'.substr($md5, 0, 2); 
                $dest = $dir.'/'.$_POST["file{$i}_name"];

                if (!is_dir($dir)) {
                        mkdir($dir, 0777);
                }   

                rename($src, $dest);
        }   
}

 

流程:

nginx接收到请求,保存到配置文件指定位置,然后使用php做后续处理。

 

配置说明

http://wiki.nginx.org/HttpUploadModule

分享到:
评论

相关推荐

    nginx-upload-module-master.rar_modules_nginx_upload

    Nginx Upload Module 是一款为 Nginx Web 服务器设计的扩展模块,主要用于处理文件上传功能。它提供了高效、灵活且可靠的文件上传解决方案,支持大文件分块上传以及断点续传,是许多 web 应用程序在后端处理用户上传...

    nginx-upload-module模块源码

    nginx-upload-module模块源码,用于nginx配置文件上传功能

    nginx-upload-progress模块源码

    要使用 `nginx-upload-progress` 模块,首先需要编译并安装自定义的 Nginx。这通常包括以下步骤: 1. 下载 Nginx 源码。 2. 下载并解压 `nginx-upload-progress` 模块源码。 3. 配置 Nginx 时,指定模块源码路径。 4...

    nginx上传下载之nginx-upload-module-2.3.0

    Nginx Upload Module 是一个用于 Nginx 的第三方模块,它允许用户在通过 HTTP 协议上传大文件时进行处理,例如分块上传、限速、断点续传等。这个模块对于构建支持大文件上传的 Web 应用非常有用,特别适用于文件分享...

    包含upload-module的nginx-1.21.6的windows平台64位的二进制文件

    包含upload-module的nginx-1.21.6,针对windows平台64位的编译的二进制(exe)文件。 为了upload-module能在window平台编译通过,进行部分代码修改,修改内容详见https://github.com/chnykn/bimface

    nginx_upload_module 加lua 实现上传

    在Nginx环境中,我们可以使用`ngx_lua`模块(也称为OpenResty)来运行Lua代码,实现服务器端的业务逻辑。Lua脚本(如`yup.lua`)可以处理`nginx_upload_module`上传完成后触发的各种操作,比如验证文件内容、存储...

    nginx-upload-module-2.0.tar.gz

    在Nginx的配置文件(通常是`nginx.conf`)中,你需要添加模块相关的配置指令,如`upload_pass`,`upload_set_form_field`等,以便指定上传文件的处理方式。 5. **重新加载或重启Nginx**: 最后,使用`sudo nginx ...

    Nginx+upload+lua实现简单文件上传服务

    本教程将详细解析如何使用Nginx、upload模块以及lua来搭建一个简单的文件上传系统。 首先,我们需要了解Nginx的ngx_http_upload_module模块,这是一个用于处理HTTP POST请求中的文件上传的第三方模块。它允许我们在...

    Nginx文件上传模块配置

    在本文中,我们将深入探讨如何配置Nginx以支持文件上传功能,特别是使用upload_module和upload_progress_module这两个第三方模块。Nginx是一个高效且灵活的HTTP服务器和反向代理,由Igor Sysoev开发,它支持模块化的...

    nginx-upload-module-2.2.

    本文将详细阐述Nginx Upload Module 2.2的相关知识点,帮助你更好地理解和应用这个模块。 ### 1. Nginx Upload Module介绍 Nginx Upload Module是一个第三方模块,用于处理HTTP请求中的文件上传。它允许你在Nginx...

    nginx1.16.1+nginx-upload-module-2.3.0.zip

    【标题】"nginx1.16.1+nginx-upload-module-2.3.0.zip" 涉及的核心知识点是 Nginx 和一个特定的模块 —— nginx-upload-module。Nginx 是一款高性能的 Web 服务器和反向代理服务器,广泛应用于高并发场景,其轻量级...

    nginx_upload_module-2.2.0.tar.gz

    **Nginx Upload Module 2.2.0 模块详解** `nginx_upload_module-2.2.0.tar.gz` 是一个针对 Nginx Web 服务器的第三方模块,主要用于处理文件上传功能。Nginx 作为一款高性能的 HTTP 和反向代理服务器,原生并不直接...

    nginx1.16+nginx-upstream-check-module-master+nginx-upload-module

    这里我们关注的是一个包含特定模块的Nginx配置:`nginx1.16`,`nginx-upstream-check-module-master` 和 `nginx-upload-module`。这三个组件将帮助我们增强Nginx在处理后端服务健康检查、文件上传等方面的功能。 ...

    nginx-upload文件上传代码和工具

    1. **Nginx-Upload模块概述** `nginx-upload`模块是Nginx的一个第三方插件,由Uploading.com公司开发,它允许用户通过HTTP POST或PUT方法在服务器上上传大文件,同时支持断点续传和文件分块上传。这个模块的核心...

    断点上传Nginx升级后的组件nginx-upload-module-2.2

    不过,通过添加第三方模块,如`nginx-upload-module-2.2`,可以扩展Nginx的功能,使其具备断点上传的能力。 `nginx-upload-module`是Nginx的一个模块,主要任务是处理上传请求,包括接收、验证和存储上传的文件。它...

    nginx-upload-module-master.zip

    为了解决这个问题,社区开发了第三方模块——Nginx Upload Module,它允许用户在Nginx服务器上便捷地实现文件上传功能。 **一、Nginx Upload Module 概述** Nginx Upload Module 是一个Nginx插件,主要功能是接收...

    nginx upload在java中的应用.doc

    总的来说,nginx upload模块结合Java服务器提供了一种高效处理文件上传的方法。前端提交文件至Nginx,Nginx负责存储和传递文件信息,后端Java应用则可以专注于业务逻辑处理,如文件迁移、转码等。这种方式不仅简化了...

    nginx-upload-module

    Nginx上传模块该模块基于Nginx上传模块(v 2.2.0) 。 ...由于似乎作者没有维护该模块。 我更改了一些可以与最新的nginx一起安装的代码。 安装./configure --add-module = {module_dir} && make &&进行安装conf ...

    nginx安装文件上传ngx_upload模块教程.docx

    ngx_upload模块是Nginx的一个扩展模块,专门用于处理HTTP请求中的文件上传功能。这个模块允许用户在Web应用中安全地上传文件,并提供了多种配置选项来控制上传过程。以下是安装和配置ngx_upload模块的详细步骤: 1....

Global site tag (gtag.js) - Google Analytics