当前位置:编程学习 > JAVA >>

jersey(rest)架构实现上传下载

其实是先的是最简单的上传下载,也是最古老的方法,其实我觉得好的地方是存在一个flash效果,

 


html页面:

引入了 <script type="text/javascript" src="$stylePath/resources/js/swfobject.js"></script>
<script type="text/javascript" src="$stylePath/resources/js/jquery.uploadify.v2.1.0.min.js"></script>
<link rel="stylesheet" href="$stylePath/resources/styles/uploadify.css" type="text/css" media="screen"/>

<body>
<form id="userForm" method="post">
<div class="wrap_item">

<input id="id" name="id" type="hidden"/>
<ul>
<li>
<label>标题:</label>
<input type="text" id="title" name="title" class="js_area"/>
</li>
<li>
<label>描述:</label>
<textarea rows="" cols="" id="description" name="description"></textarea>
<span class="text">文本长度限制200个字符</span>
<input type="hidden" name="filePath" id="filePath"/>
<input type="hidden" name="fileNameSystem" id="fileNameSystem"/>
<input type="hidden" name="fileNameActual" id="fileNameActual"/>
</li>
<li>
<label>文件</label>
<div id="file_upload"></div>
<div id="file_list"></div>
</li>
</ul>
</div>
<div class="btn_div">
<input type="button" class="Btn_save" value="上 传" onclick="$('#file_upload').uploadifyUpload();" id="saveArea"/>
<input type="button" class="Btn_save" value="保 存" onclick="savePlacard()" id="saveArea"/><input type="button" class="Btn_cancle" onclick="closeWin()" value="取 消" id="exitArea"/>
</div>
</form>
</body>


js代码:

$(function(){
$('#file_upload').uploadify({
   'uploader' : '$stylePath/resources/imgs/uploadify.swf',
   'script' : $().getRealPath()+'/ccms/placard/placard/upload',
   'fileDataName' : 'file',
   'cancelImg' : '$stylePath/resources/imgs/cancel.png',
   'multi' : false,
        'onComplete': function(event, queueID, fileObj, response, data) {
            $(this).each(function(i) {
            var strs=response;
            //strs=strs.substring(1,strs.indexOf("]"));
            strs=strs.replace("/\'/g","");
            strs=strs.replace("/\"/g","");
            var str=strs.split(",");
            $("#filePath").val(str[0]);
            $("#fileNameSystem").val(str[1]);
            $("#fileNameActual").val(str[2]); 
            });
        },
        'onAllComplete': function(event, data) {
            $("#file_list").html("本次上传文件: " + data.filesUploaded + " 个,文件总大小: " + data.allBytesLoaded + " KB,平均上传速度: " + data.speed + "kb/s");
        },
        'onError': function(event, queueID, fileObj) {
            alert("文件:" + fileObj.name + " 上传失败");


        }
});
});


save方法

function savePlacard(){
if(!check())return false;
$("#userForm").attr("action",$().getRealPath()+"/ccms/placard/placard/add");
$("#userForm").ajaxSubmit({
success:function(responseText,statusText,xhr,$form){
if(responseText=="1"){
alert("保存失败");
}
else{
confirm("保存成功",function (){
$("#id").val(responseText);
art.dialog.data("state","y");
art.dialog.data("origin").close();
});
}
}
});


后台资源方法

@POST
@Produces("text/plain")
@Path("/upload")
public String load(@Context HttpServletRequest request) throws Exception {
request.setCharacterEncoding("UTF-8");
String fileName ="";
String fileNewName="";
String fileRepository =request.getSession().getServletContext().getRealPath("")+ File.separatorChar+"upload"+File.separatorChar;
String filePath=File.separatorChar+"upload"+File.separatorChar;
String fileType="";
if (ServletFileUpload.isMultipartContent(request)) {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> items = null;
try {
items = upload.parseRequest(request);
} catch (FileUploadException e) {
e.printStackTrace();
}
if (items != null) {
Iterator<FileItem> iter = items.iterator();
while (iter.hasNext()) {
FileItem item = iter.next();
if (!item.isFormField() && item.getSize() > 0) {
fileName = processFileName(item.getName());
fileType=getFileType(fileName);
fileNewName=getFileName(fileName)
+new SimpleDateFormat("yyyyMMddHHmmssSSS") .format(new Date() )+fileType;
fileRepository=fileRepository+fileNewName;
filePath=filePath+fileNewName;
try {
item.write(new File(fileRepository));
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
return fileRepository + ","+fileNewName+","+fileName;
}


------------------------------------------以上是上传--------------------------------------------------------

------------------------------------------以上是下载--------------------------------------------------------

 

 

下载js

//获取上传的文件列表,这个在不同项目中是可变的

function loadPlcard(){
var html="";
$.post($().getRealPath()+"/ccms/placard/placard/protalList",{id:""},
   function(data) {
if(data!=null){
var createDate="";
var filePath="";
for(var i=0;i<data.length;i++){
html=html+"<li><label id=\"title\">"+data[i]["

补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,