抱歉,您没有权限增加页面
普通网站在实现文件上传功能的时候,一般是使用Python,Java等后端程序实现,比较麻烦。Nginx有一个Upload模块,可以非常简单的实现文件上传功能。此模块的原理是先把用户上传的文件保存到临时文件,然后在交由后台页面处理,并且把文件的原名,上传后的名称,文件类型,文件大小set到页面。下面和大家具体介绍一下。
为了使用Nginx Upload Module,需要编译安装Nginx,将upload module编译进去。upload module的代码可以去Github上下载: Upload Module
之后的编译安装Nginx这里就不介绍,不了解的可以参考: Ubuntu 14.10下源码编译安装Nginx 1.8.0
Nginx upload module的简单配置如下:
server {
listen *:80 default_server;
server_name 192.168.1.251;
client_max_body_size 20m;
client_body_buffer_size 512k;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE_ADD $remote_addr;
location /upload { }
location @python { }
}这里我们使用Django作为后端处理程序,比较简单,具体如下:
首先创建Django项目:
django-admin.py startproject uploadmodule
然后,创建views.py文件,代码如下:
# -*- coding: utf-8 -*- import os import json from django.http import HttpResponse from django.views.decorators.csrf import csrf_exempt UPLOAD_FILE_PATH = '/tmp/nginx_upload/' @csrf_exempt def upload(request):python manage.py runserver 0.0.0.0:9999
然后,模拟POST请求:http://192.168.1.251/upload/,上传一个jpg文件,返回结果如下:
{}