#!/opt/perluseMojolicious::Lite;get'/'=>'form';post'/upload'=>sub{my$c=shift;# Check file sizereturn$c->render(text=>'File is too big.',status=>200)if$c->req->is_limit_exceeded;# Process uploaded filemy$example=$c->req->upload('kartik-input-700[]');my$size=$example->size;my$name=$example->filename;$c->render(json=>{});};hook(after_build_tx=>sub{my($tx,$app)=@_;$tx->res->headers->header('Access-Control-Allow-Origin'=>'*');});options'*'=>sub{my$self=shift;$self->res->headers->header('Access-Control-Allow-Origin'=>'*');$self->res->headers->header('Access-Control-Allow-Credentials'=>'true');$self->res->headers->header('Access-Control-Allow-Methods'=>'GET, OPTIONS, POST, DELETE, PUT');$self->res->headers->header('Access-Control-Allow-Headers'=>'Content-Type, X-CSRF-Token');$self->res->headers->header('Access-Control-Max-Age'=>'1728000');$self->respond_to(any=>{data=>'',status=>200});};my$mode=shift(@ARGV);push(@ARGV,"daemon","-l",'http://*:3000')if"display"eq$mode;push(@ARGV,"daemon","-l",'http://*:3001')if"process"eq$mode;app->start;# https://github.com/kartik-v/bootstrap-fileinput#manual-install__DATA__@@form.html.ep<!DOCTYPEhtml><html><head><title>Upload</title><linkhref="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"rel="stylesheet"><linkhref="/fileinput.min.css"media="all"rel="stylesheet"type="text/css"/><scriptsrc="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script><scriptsrc="/fileinput.min.js"type="text/javascript"></script></head><body><inputid="input-700"name="kartik-input-700[]"type="file"multipleclass="file-loading"><script>$("#input-700").fileinput({uploadUrl:"http://127.0.0.1:3001/upload",//serveruploadactionuploadAsync:true});</script></body></html>
Comments (0)
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.