zoukankan      html  css  js  c++  java
  • 解决nginx上传模块nginx_upload_module传递GET参数

    解决nginx上传模块nginx_upload_module传递GET参数的方法总结

    最近用户反映我们的系统只能上传50M大小的文件, 希望能够支持上传更大的文件。

    很显然PHP无法轻易实现大文件上传, 因为会有各种各样的郁闷问题, 比如服务器超时等, 那么如何解决呢? 我想到了nginx_upload_module!!!

    如何安装nginx_upload_module? 请看这里:nginx_upload_module安装使用教程

    解决了大文件上传之后又遇到了新问题, 我们希望通过nginx_upload_module给后台php处理程序以GET方式传输数据(当然nginx_upload_module支持POST数据传递, 却不支持GET)

    下面我解决nginx_upload_module使用GET传参的方法公布出来,希望能够帮助到和我一样需求的朋友!

    修改nginx配置文件(程序站点配置文件test.conf)

    1
    2
    3
    4
    5
    6
    7
    location /upload_waynerqiu {
    upload_pass_args on;
    upload_resumable on;
    upload_pass /up_test.php?$args;
    #此处省略掉详细配置…
    #如需要详细的参考可查看http://waynerqiu.com/7/136.html
    }

    html表单代码(up_test.php,此页面即作为表单页同时也负责nginx_upload_module回调页面)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <html>
    <head>
    <title>Test upload</title>
    </head>
    <body
    <?php
    print_r($_REQUEST);
    ?>
    <h2>Select files to upload</h2>
    <form enctype='multipart/form-data' action='/upload_waynerqiu?who=abc&she=def' method='post'>
    <input type='file' name='file1'><br
    <input type='submit' name='submit' value='Upload'>
    <input type='hidden' name='test' value='value'>
    </form>
    <a href='/up_test.php'>back</a>
    </body>
    </html>

    从以上两段代中我们可以看出我试使用/upload_waynerqiu?who=abc&she=def 将who=abc&she=def传递到 后台nginx回调程序 up_test.php中, 这个过程中我使用了nginx变量 $args(更多nginx变量请看这里:http://waynerqiu.com/7/138.html)。

    经过测试之后发现参数可以完美的传递来了! 

    上图中红线部分即为使用nginx_upload_module传递过来的参数!

  • 相关阅读:
    redis
    linux systemd
    分布式高可用架构演进
    c++ 多线程 信号量简单使用
    JAVA上传文件到FTP上
    JAVA字符串去掉html代码
    jQuery判断复选框是否勾选
    SpringBoot全局异常处理
    SpringBoot统一日志打印
    JAVA加解密之DES
  • 原文地址:https://www.cnblogs.com/lidabo/p/4169752.html
Copyright © 2011-2022 走看看