分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示。而且是Ajax的,省去了自己写Ajax上传功能的麻烦。不过官方提供的实例时php版本的,本文将详细介绍Uploadify在J2EE中的使用。
1.引入头文件(注意一定要把jQuery放在前面):
注意:uploader是上传的Action路径名;formData是传递给Action的参数列表。
<script src="lib/jquery-1.8.3.min.js"></script><script src="lib/uploadify/jquery.uploadify.min.js" type="text/javascript"></script><script type="text/javascript"> $(function() { $('#projectfile').uploadify({ 'swf' : 'lib/uploadify/uploadify.swf', 'uploader' : 'ProjectfileAdd.action', 'formData': {'projectid': '${project.id}'}, 'fileObjName' : 'file', 'fileSizeLimit' : '0', 'onQueueComplete' : function(queueData) { alert(queueData.uploadsSuccessful + ' files were successfully uploaded.'); } }); });</script>
2.需要上传的地方添加一个<form>,里面有一个<input>(注意其id属性):
<form> <input id="projectfile" name="file" type="file" ></input></form>
3.看一下<input>效果如下,还挺美观的
4.后台的Action就是一个普通的上传文件的Action,示例如下:
package dc.action.projectfile;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.sql.Timestamp;import java.util.Date;import java.util.Map;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import dc.bean.Project;import dc.bean.Projectfile;import dc.bean.User;import dc.service.ProjectService;import dc.service.ProjectfileService;public class ProjectfileAdd extends ActionSupport { private static final int FILE_SIZE=16*1024; private int projectid; private ProjectService projectService; private ProjectfileService projectfileService; private File file; private String fileFileName; private String fileContentType; public int getProjectid() { return projectid; } public void setProjectid(int projectid) { this.projectid = projectid; } public ProjectService getProjectService() { return projectService; } public void setProjectService(ProjectService projectService) { this.projectService = projectService; } public ProjectfileService getProjectfileService() { return projectfileService; } public void setProjectfileService(ProjectfileService projectfileService) { this.projectfileService = projectfileService; } public File getFile() { return file; } public void setFile(File file) { this.file = file; } public String getFileFileName() { return fileFileName; } public void setFileFileName(String fileFileName) { this.fileFileName = fileFileName; } public String getFileContentType() { return fileContentType; } public void setFileContentType(String fileContentType) { this.fileContentType = fileContentType; } public static int getFileSize() { return FILE_SIZE; } //写入文件时候用到的函数 public void upLoadFile(File source,File target){ InputStream in=null; OutputStream out=null; try{ in=new BufferedInputStream(new FileInputStream(source),FILE_SIZE); out=new BufferedOutputStream(new FileOutputStream(target),FILE_SIZE); //in-->image-->out byte[] image=new byte[FILE_SIZE]; while(in.read(image)>0){ out.write(image); } }catch(IOException ex){ ex.printStackTrace(); }finally{ try{ in.close(); out.close(); }catch(IOException ex){ ex.printStackTrace(); } } } public String execute() { try { Projectfile projectfile=new Projectfile(); projectfile.setName(fileFileName); Project project=projectService.ReadByID(projectid); projectfile.setProject(project); projectfile.setModifytime( new Timestamp(new Date().getTime())); String filepath="file/"+project.getId()+"/"+fileFileName; projectfile.setFilepath(filepath); projectfile.setFilesize(file.length()); //不是连接到外网的文件 projectfile.setFilelink(0); projectfile.setContenttype(fileContentType); //--记录编辑人------------------ ActionContext context = ActionContext.getContext(); Map sessionMap = context.getSession(); User currentuser=(User)sessionMap.get("user"); projectfile.setUser(currentuser); //------------------------------ //projectfile.setFilesize(1); projectfileService.save(projectfile); //文件上传,存至硬盘 //ServletActionContext.getServletContext().getRealPath获得webRoot绝对路径 String realfilePath=ServletActionContext.getServletContext().getRealPath("file") +"/"+project.getId()+"/"+this.fileFileName; File targetFile=new File(realfilePath); targetFile.getParentFile().mkdirs(); upLoadFile(file,targetFile); } catch (Exception ex) { ex.printStackTrace(); return ERROR; } return SUCCESS; }}
Uploadify官方网站: http://www.uploadify.com/
Uploadify下载:http://download.csdn.net/detail/leixiaohua1020/6376463