360网站管家 发表于 2015-9-28 17:05:16

ajaxFileUpload + lua-resty-upload 上传文件

ajaxFileUpload下载地址
地址:http://pan.baidu.com/s/1mgJypz6
html页面
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>Untitled</title><script src="jquery-1.7.1.js"></script><script src="ajaxfileupload.js"></script><script type="text/javascript">$(function () {$(":button").click(function () {ajaxFileUpload();})})function ajaxFileUpload() {$.ajaxFileUpload({url: '/dsideal_yy/rating/test', //用于文件上传的服务器端请求地址                                        fileElementId: 'file1', //文件上传空间的id属性<input type="file" id="file" name="file" />                  dataType: 'json', //返回值类型 一般设置为json                  success: function (data)//服务器成功响应处理函数                  {                        alert(data.msg);}})return false;}</script></head><body><body><p><input type="file" id="file1" name="file" /></p><input type="button" value="上传" /></body>    </html>
lua代码
local upload = require "resty.upload"local uuid =require "resty.uuid";local chunk_size = 4096local form = upload:new(chunk_size)local file--获取文件名function get_filename(res) local filename = ngx.re.match(res,'(.+)filename="(.+)"(.*)') if filename thenreturn filename end end --获取文件扩展名function getExtension(str)return str:match(".+%.(%w+)$")endwhile true dolocal typ, res, err = form:read()    if not typ then         ngx.say("{error:'error', msg:'"..tostring(err).."',imgurl:''}")returnendif typ == "header" thenif res ~= "Content-Type" thenlocal file_id = uuid.new()local filen_ame = get_filename(res)local extension = getExtension(filen_ame)local dir = string.sub(file_id,0,2)            local file_name = "/usr/local/tomcat7/webapps/dsideal_yy/html/down/Material/"..dir.."/"..file_id.."."..extension            if file_name thenfile = io.open(file_name, "w+")if not file thenngx.say("{error:'error', msg:'failed to open file',imgurl:''}")returnendendendelseif typ == "body" thenif file thenfile:write(res)            endelseif typ == "part_end" thenfile:close()file = nilelseif typ == "eof" thenbreakelse-- do nothingendendngx.say("{error:'success', msg:'上传成功!',imgurl:''}")
页: [1]
查看完整版本: ajaxFileUpload + lua-resty-upload 上传文件