js部分: function BigFileUpload(showId,fileFormId,delurl,downloadurl){ var fileName = new Array(); var that = this; $(fileFormId).form({ success:function(data){ //返回信息[['文件名称','完整路径'],['','']...] $(showId+" .shadow").css("display","none"); data = eval('(' + data + ')'); $.each(data,function(index,val){ $(showId).append(cloneFileContent(val)); //$(showId).append(that.downloadFiles(val)); }); $.merge(fileName,data); } }); this.downloadFiles = function (file){ return $("<a href='"+downloadurl.replace('fileUrl',file[1])+"' download='"+file[0]+"'>"+file[0]+"</a>"); }; function cloneFileContent(flName){ var temp = $("<li class='liststyle icon-fileTitle'><span>"+flName[0]+"</span><a style='margin-left: 20px;cursor: pointer;color: #204b88;'>删除</a></li>").clone(); temp.find("a").click(function(){ $.post(delurl,{'fileGuid':flName[1]},function(data){ temp.remove(); fileName = $.grep(fileName,function(val,index){ console.log(val[0],flName[0],val[0] != flName[0]); return val[0] != flName[0]; }); console.log(fileName); },"json") }); return temp; }; this.operate = function(input){ $(showId+" .shadow").css("display","block"); $(fileFormId).form("submit"); $(input).val(''); }; this.getFilenames = function(){ return fileName; } }
twig页面: <div id="lessionFileShow" style="width: 400px;height: 100px;border: solid 1px #0000ff;overflow: auto;position: relative;z-index: 100;"> <a class="easyui-linkbutton" οnclick="$('#lessionfileForm #fileUploadInput').click()">选择文件</a> <ul></ul> <div class="shadow" style="z-index: 105;position: absolute;top: 0px;left: 0px;background: rgba(223, 225, 255, 0.72);width: 400px;height: 100px;display: none"> <div style="margin: 30px 0 0 100px"><img src="{{ asset('image/loading.gif') }}"/> 正在上传,请稍候。。。</div> </div> </div> <form style="display: none" class="easyui-form" method="post" enctype="multipart/form-data" action="{{ path('lessionFileUpload') }}" id="lessionfileForm"> <input id="fileUploadInput" type="file" multiple name="trainFile[]" οnchange="lessionFileUpload.operate(this)"/> </form>
lessionFileUpload = new BigFileUpload("#lessionFileShow","#lessionfileForm","{{ path('lessionFileDel') }}","{{ asset('fileUrl') }}");
后端控制器: public function lessionFileUploadAction(Request $request){ $files=$request->files->get("trainFile"); $fileupload = $this->get('app.file_uploader'); $fileInfo =[]; $this->get("logger")->info("fileuploadtest",[$files]); foreach($files as $key=>$value){ if($value){ array_push($fileInfo,$fileupload->upload($value,'lessonfile')); } } return $this->json($fileInfo); }
public function lessionFileDelAction(Request $request){ $fileGuid = $request->request->get("fileGuid"); if(file_exists($fileGuid)&&unlink($fileGuid)){ return $this->json(array("state"=>"success")); }else{ return $this->json(array("state"=>"faile")); } }