`
xiyuliuguang
  • 浏览: 32631 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

Uploadify 上传文件

阅读更多
JSP代码
$(document).ready(function() {
[/align][align=left]
$.excelUploadify("#upload", "information", "上传文件");
});

$.extend({
excelUploadify : function (obj, importType, buttonText) {
$(obj).uploadify({
'uploader' : "js/uploadify/uploadify.swf",
'script' : "<%=basePath%>/InformationUpload.do",
'cancelImg' : "js/uploadify/cancel.png",
'auto' : true,
'multi' : false,
'queueID' : "fileQueue",
'fileDataName' : "upload",
'fileExt' :  "*.xls; *.doc; *.pdf; *.ppt; *.docx; *.xlsx; *.pptx; *.txt; *.jpg; *.png; *.gif; *.mts; *.mpg",
'fileDesc' : "支持文件; *.xls; *.doc; *.pdf; *.ppt; *.docx; *.xlsx; *.pptx; *.txt; *.jpg; *.png; *.gif; *.mts; *.mpg",
'sizeLimit' : '104857600',
'buttonText' : buttonText,
'scriptData' : {'importType' : importType},
'onSelect' :  function(event,ID,fileObj) {
//解决中文问题
$('#upload').uploadifySettings('scriptData',{'filename': encodeURI(encodeURI(fileObj.name)),'type' : 'upload'});
}, 
'onComplete' : function(event, queueID, fileObj, response, data) {

}
});
}
});

<!-- 上传 -->
                    <div  style="float:right;margin-right:10px;background-image:none; background-color:none;">
<table width="20" border="0" align="right">
  <tr>
    <td>
<div align="right" >
    <input id="upload" name="upload" type="file" style="background-image:none; background-color:none;" />
    </div>
    <div id="fileQueue" align="left"></div>
    </td>
  </tr>
</table>
  </div>


后台:

package cn.com.sundy.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.interceptor.SessionAware;
import org.apache.struts2.util.ServletContextAware;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import cn.com.sundy.manager.ConverterService;
import cn.com.sundy.util.ImageThumb;
import cn.com.sundy.util.TimeSource;

import com.opensymphony.xwork2.ActionSupport;

/**
*
* @author WangMeng
*/
@Scope("prototype")
@Controller("informationUploadAction")
public class InformationUploadAction extends ActionSupport implements ServletContextAware,RequestAware,SessionAware,ServletResponseAware{


private static Logger log = Logger.getLogger(InformationUploadAction.class);
private Map<String,Object> request;
private Map<String,Object> session;
private HttpServletResponse response;
private ServletContext servletContext;

private String[] upload;

private String uploadContentType;

private String uploadFileName;

private String allowTypes;

private String savePath;

private String serverSavedName;

private String importType;

private String saveDir = "file\\temp\\upload\\data";

//文件分割符
private String seprater="\\";

@Autowired
ConverterService converterService;

public Map<String, Object> getRequest() {
return request;
}
public void setRequest(Map<String, Object> request) {
this.request = request;
}
public Map<String, Object> getSession() {
return session;
}
public void setSession(Map<String, Object> session) {
this.session = session;
}

/**
* 上传
*
* @return
* @throws Exception
*/
public String upload() throws Exception {

//设置回写部分
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
// 判断是否允许上传
String[] allowedTypes = getAllowTypes().split(",");
String filterResult = filterType(allowedTypes);

if (filterResult != null) {
return filterResult;
}
String randomTimeMillis = TimeSource.getNowTime14() + String.valueOf(System.currentTimeMillis());
String name1 = java.net.URLDecoder.decode(ServletActionContext.getRequest().getParameter("filename"), "utf-8").toLowerCase();
this.setUploadFileName(this.generatFileName(name1, randomTimeMillis));
// 以服务器的文件保存地址和原文件名建立上传文件输出流
File source = new File(getUpload()[0]);
serverSavedName = getSavePath() + "\\" + getUploadFileName();
String pdfName = serverSavedName.substring(0, serverSavedName.lastIndexOf(".")) + ".pdf";
//随机生成存到数据库中
String swfName = randomTimeMillis + ".swf";


PrintWriter out = response.getWriter();
try{
File serverSavedFile = new File(serverSavedName);
if (!serverSavedFile.exists() || !serverSavedFile.isFile()) {
File parent = serverSavedFile.getParentFile();
if (!parent.exists() || !parent.isDirectory()) {
parent.mkdirs();
}
serverSavedFile.createNewFile();
}

FileOutputStream fileOutputStream = new FileOutputStream(serverSavedFile);
FileInputStream fileInputStream = new FileInputStream(source);

byte[] buffer = new byte[1024];
int len = 0;
while ((len = fileInputStream.read(buffer)) > 0) {
fileOutputStream.write(buffer, 0, len);
}

fileInputStream.close();
fileOutputStream.close();

}

}catch(IOException e){
out.println("<script>alert('上传失败')</script>");
out.flush();
out.close();
return null;
}


String user = (String) session.get("username");
//上传人,上传时间,文件路径
out.print(user  + "," + TimeSource.getNowTime19() + "," + this.saveDir + this.seprater + name1 + ","  + this.saveDir + this.seprater + swfName + "," + this.saveDir + this.seprater + this.getUploadFileName() + "," + this.saveDir + this.seprater + SaveImageThumbName + "," + this.saveDir + this.seprater + SaveImageIndexName);
out.flush();
out.close();
return null;
}




/**
* 生成新文件名
* @param fileName
* @param randomTimeMillis
* @return
*/
public String generatFileName(String fileName, String randomTimeMillis){

String randomFileName = fileName.substring(0, fileName.trim().lastIndexOf(".")) + randomTimeMillis + fileName.substring(fileName.lastIndexOf("."));
return randomFileName;
}



/************************ Assistant ***********************/

/**
* 过滤上传类型
*
* @param types
* @return
*/
public String filterType(String[] types) {
String fileType = this.getUploadContentType();
System.out.println("fileType:" + fileType);
for (String type : types) {
if (type.equals(fileType)) {
return null;
}
}
return INPUT;
}

/************************ Getter & Setter ***********************/

public String[] getUpload() {
return upload;
}

public void setUpload(String[] upload) {
this.upload = upload;
}

public String getUploadContentType() {
return uploadContentType;
}

public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}

public String getUploadFileName() {
return uploadFileName;
}

public void setUploadFileName(String uploadFileName) throws UnsupportedEncodingException {
this.uploadFileName = uploadFileName;
}

public String getAllowTypes() {
return allowTypes;
}

public void setAllowTypes(String allowTypes) {
this.allowTypes = allowTypes;
}

public String getSavePath() {
return servletContext.getRealPath(savePath);
}

public void setSavePath(String savePath) {
this.savePath = savePath;
}

public String getServerSavedName() {
return serverSavedName;
}

public void setServerSavedName(String serverSavedName) {
this.serverSavedName = serverSavedName;
}

@Override
public void setServletContext(ServletContext arg0) {
this.servletContext = arg0;
}

public String getImportType() {
return importType;
}

public void setImportType(String importType) {
this.importType = importType;
}

public ServletContext getServletContext() {
return servletContext;
}
@Override
public void setServletResponse(HttpServletResponse arg0) {
this.response=arg0;

}
public String getSaveDir() {
return saveDir;
}
public void setSaveDir(String saveDir) {
this.saveDir = saveDir;
}
public String getSeprater() {
return seprater;
}
public void setSeprater(String seprater) {
this.seprater = seprater;
}


}
//struts
<action name="InformationUpload" class="informationUploadAction" method="upload" >
<param name="allowTypes">
application/msexcel,application/vnd.ms-excel,application/octet-stream <!-- Separated by ',' -->
</param>
</action>
分享到:
评论

相关推荐

    HTML5 PHP jquery uploadify上传文件

    HTML5 PHP jquery uploadify上传文件,带进度条,author:吕大豹。仿照uploadify写的,www.codesc.net已做过修正,本例的配置参数均与uploadify官网一致,参照官网的api就可以了,直接把文件夹上传到支持php的服务器...

    uploadify上传文件HTTP ERROR

    "uploadify上传文件HTTP ERROR"这个标题指向了一个特定的问题,即用户在尝试使用Uploadify插件进行文件上传时遇到了HTTP错误。Uploadify是一款流行的JavaScript插件,它允许用户通过异步方式上传文件到服务器,提供...

    uploadify多文件上传例子代码

    当uploadify上传文件时,会发送多个HTTP请求,每个请求对应一个文件。在doPost方法中,你可以通过Part接口来接收并处理这些文件。例如: ```java protected void doPost(HttpServletRequest request, ...

    Struts2+uploadify上传文件

    Struts2和Uploadify是两种在Web开发中用于文件上传的技术。...以上就是关于"Struts2+uploadify上传文件"的知识点详解,希望对你的学习有所帮助。在实际开发中,结合这两个工具可以实现高效、灵活的文件上传功能。

    jquery-java-ajax-uploadify上传文件

    在IT行业中,前端开发经常会遇到文件上传的需求,而"jquery-java-ajax-uploadify上传文件"是一个经典的方法,结合了JavaScript库jQuery、Ajax技术以及Uploadify插件来实现这一功能。在这个过程中,我们将深入探讨...

    使用Jquery.uploadify上传文件(JAVA版)

    使用Jquery.uploadify上传文件。 jquery有很多插件,其中也有不少上传文件的插件,像ajaxfileupload.js、uploadify.js,不过网上的例子几乎全是php的,很郁闷,研究了半天,终于把uploadify用jsp版本弄出来了

    MVC4下对话框中使用Uploadify上传多个文件

    6. **处理上传结果**:在`onUploadSuccess`事件中,我们可以根据后端返回的数据更新页面,例如显示已上传文件的列表。 至此,我们完成了在MVC4中使用JQuery Dialog和Uploadify进行多文件上传的基本流程。请注意,...

    uploadify上传文件

    "uploadify上传文件"这个标题意味着我们将讨论如何使用Uploadify插件来实现文件上传功能。Uploadify的主要优点在于它支持批量上传,用户可以选择多个文件同时上传,极大地提高了上传效率。此外,它还提供了实时的...

    使用uploadify上传文件

    此外,Uploadify还支持多种自定义设置,例如限制上传文件类型、大小、更改按钮文本等,这为我们提供了高度的灵活性来适应不同的项目需求。 总结来说,Uploadify是一个强大的jQuery文件上传插件,能够帮助开发者实现...

    spring mvc uploadify上传文件

    此外,需要确保上传文件的安全性,防止恶意文件上传,例如检查文件扩展名、执行文件内容扫描等。 ### 7. 性能优化 对于大量文件上传,可以考虑使用异步处理、分片上传、多线程等方式提高上传性能。同时,合理配置...

    C# uploadify文件上传.zip

    在C#编程环境中,Uploadify是一个非常流行的JavaScript库,它与服务器端的C#代码结合,用于实现用户友好的文件上传功能。这个压缩包“C# uploadify文件上传.zip”很可能是包含了一个完整的示例项目,帮助开发者了解...

    Grails结合uploadify上传文件的简单代码

    uploadify则是一个JavaScript库,它允许用户通过异步方式上传文件,提供友好的用户体验。 首先,我们需要在Grails项目中引入uploadify。这通常涉及到在`build.gradle`或`Config.groovy`文件中添加对应的依赖。对于...

    jquery.uploadify上传文件

    在网页开发中,用户经常需要上传文件,例如图片、文档等。jQuery Uploadify是一款强大的JavaScript插件,它允许用户通过异步方式实现多文件的同时上传,极大地提升了用户体验。这个插件以其易用性、自定义性和高效的...

    PHP+UploadiFy批量上传文件

    避免恶意文件上传,如通过检查文件头、限制上传文件类型、使用白名单等方法。 6. **优化性能**:对于大量文件上传,可能需要考虑分批处理,使用异步队列,或者使用多线程上传以提高效率。 总结起来,使用PHP和...

    Uploadify上传文件方法

    以下是对Uploadify上传文件方法及其在ASP.NET中的使用的详细说明: 1. **Uploadify基本使用** - 首先,你需要在HTML页面中引入jQuery库、jQuery EasyUI(可选,用于美化界面)以及Uploadify的JavaScript和CSS文件...

    jQuery uploadify上传文件(JAVA版+Struts2即时预览效果)

    首先,jQuery uploadify是一款优秀的前端文件上传插件,它允许用户通过Ajax方式异步上传文件,提供了友好的用户体验,如进度条显示、多文件上传等。然而,官方提供的示例主要是基于PHP的,对于Java开发者来说,寻找...

    jquery文件上传插件 jquery.uploadify.js 不支持IE10现在经过修改

    在IT行业中,jQuery Uploadify.js是一款非常流行的前端文件上传插件,它允许用户通过异步方式上传文件到服务器,提供了一种友好的用户体验。然而,随着浏览器版本的更新,一些较旧的插件可能不再兼容新的浏览器,...

    Uploadify上传文件

    Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示,可多文件上传

    Java调用uploadify实现文件上传Demo实现

    Java调用uploadify实现文件上传Demo实现,文档参见:http://www.mbaike.net/java/1940.html

Global site tag (gtag.js) - Google Analytics