360°网站管家_运维学院_提供最新最全的服务器运维视频教程与网站维护视频教程

标题: ajaxFileUpload + lua-resty-upload 上传文件 [打印本页]

作者: 360网站管家    时间: 2015-9-28 17:05
标题: ajaxFileUpload + lua-resty-upload 上传文件
ajaxFileUpload下载地址
地址:http://pan.baidu.com/s/1mgJypz6
html页面
  1. <!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代码
  1. 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 then  return filename[2] 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[1] ~= "Content-Type" thenlocal file_id = uuid.new()local filen_ame = get_filename(res[2])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:''}")
复制代码





欢迎光临 360°网站管家_运维学院_提供最新最全的服务器运维视频教程与网站维护视频教程 (http://bbs.360wzgj.com/) Powered by Discuz! X3.2