首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

Struts运用plupload实现多文件上传

2012-08-17 
Struts使用plupload实现多文件上传plupload,一个挺不错js框架。到时其官方demo中只是提供了php服务端代码。

Struts使用plupload实现多文件上传
plupload,一个挺不错js框架。到时其官方demo中只是提供了php服务端代码。
下面是我个人修改的,通过Struts实现多文件上传。

package net.bingosoft.attach.action;import java.io.IOException;import java.io.InputStream;import java.util.UUID;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import net.bingosoft.attach.common.FileHelper;import net.bingosoft.attach.service.AttachService;import net.bingosoft.common.config.Config;import net.bingosoft.common.struts.BaseAction;import net.bingosoft.competition.model.VieFile;import org.apache.commons.fileupload.FileItemIterator;import org.apache.commons.fileupload.FileItemStream;import org.apache.commons.fileupload.servlet.ServletFileUpload;public class PluploadAction extends BaseAction{static private final String RESP_SUCCESS = "{"jsonrpc" : "2.0", "result" : null, "id" : "id"}";static private final String RESP_ERROR = "{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}";static private final String JSON = "application/json";private AttachService attachService;public void uploadFile(HttpServletRequest request, HttpServletResponse response) throws IOException{request.setCharacterEncoding("UTF-8");String responseString = RESP_SUCCESS;String belongId = request.getParameter("belongId");String belongModel = request.getParameter("belongModel");boolean isMultipart = ServletFileUpload.isMultipartContent(request);if (isMultipart) {ServletFileUpload upload = new ServletFileUpload();//webroot绝对路径String webRootPath = FileHelper.getServerWebRoot();String context = request.getContextPath();try {FileItemIterator iter = upload.getItemIterator(request);while (iter.hasNext()) {    FileItemStream item = iter.next(); // Handle a multi-part MIME encoded file.    if (!item.isFormField()) {    String filename = item.getName();    InputStream input = item.openStream();        String filePath = FileHelper.getServerREFile(filename);    FileHelper.uploadFile(input, webRootPath+filePath);        if(belongModel.equals(Config.getString("JINGZHENG_UPLOAD_FLAG"))){    VieFile vieFile = new VieFile();    vieFile.setFid(UUID.randomUUID().toString());    vieFile.setIid(belongId);    vieFile.setFilePath(context+"/"+filePath);    vieFile.setFileName(filename);    attachService.getBaseDao().save(vieFile);    }        }}}catch (Exception e) {responseString = RESP_ERROR;e.printStackTrace();}}// Not a multi-part MIME request.else {responseString = RESP_ERROR;}response.setContentType(JSON);byte[] responseBytes = responseString.getBytes();response.setContentLength(responseBytes.length);ServletOutputStream output = response.getOutputStream();output.write(responseBytes);output.flush();}public AttachService getAttachService() {return attachService;}public void setAttachService(AttachService attachService) {this.attachService = attachService;}}

热点排行