精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (10)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-16
兄弟,能否做开源或者打包成api共享啊,这样比较有意义哩
|
|
返回顶楼 | |
发表时间:2009-11-16
能实现多线程上传吗?否则速度很慢!
|
|
返回顶楼 | |
发表时间:2009-11-16
给的代码不全??
|
|
返回顶楼 | |
发表时间:2009-11-16
logicgate 写道 晨星★~雨泪 写道 xiaoqulai 写道 曾经de迷茫 写道 xiaoqulai 写道 kjj 写道 代码就不能格式化一下吗,看着就烦
第一次发帖,直接从我的博客中copy过来的,格式不知道咋弄,可直接下载附件,里面有源代码 使用BBCode Code标签,像Java源码 :[ code="java"][/code ] 谢谢指点,为什么的我的博客上面没有这个BBCode code,需要什么插件吗? 狂汗.... 瀑布汗,你发贴的时候没有看到"BBCode编辑器"吗?你点"code"按钮。再或者你直接用可视化编辑器。 大哥,我说的是我的博客,不是javaeye,我的博客用的是wordpress,好像没有javaeye这么强的文本编辑功能。 http://www.alanx.cn 大哥你去看看吧,顺便帮俺点点广告,在顺便告诉俺为什么我的分类目录无效,点击分类的时候,显示的是某篇文章,而不是该文类下面的文章列表 |
|
返回顶楼 | |
发表时间:2009-11-16
JackAndroid 写道 给的代码不全??
我最鄙视这种行为了,兄弟别污蔑我呀。 |
|
返回顶楼 | |
发表时间:2009-11-16
linliangyi2007 写道 兄弟,能否做开源或者打包成api共享啊,这样比较有意义哩
谢谢兄弟提醒,我的本意是供大家参考,因为这是我第一次用flash写代码,而且也是为公司工作服务的,所以能力有限,考虑不周全。不过我会按照兄弟说的封装一下,提供api。一有时间我就做这个事。 |
|
返回顶楼 | |
发表时间:2009-11-16
flyingcai 写道 能实现多线程上传吗?否则速度很慢!
没有饿,兄弟,对flash不熟。不过速度还是很快的。 多线程也不是很好啊,对服务器的负担加重了吧。 |
|
返回顶楼 | |
发表时间:2009-11-17
最后修改:2009-11-17
package cn.com.ajaxbear.action; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.PrintWriter; import java.util.HashSet; import java.util.List; import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class FileUploadCore { /** * 批量上传文件 * * @param mapping * @param form * @param request * @param response * @throws Exception */ @SuppressWarnings("uncheck") public ActionForward fileBatchUpload(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { response.setCharacterEncoding("utf-8"); request.setCharacterEncoding("utf-8"); FMSSession session = BaseSession.getInstance().getBean( FMSSession.class, FMSUtil.getProperty("fms.provider.url")); FMSStaffVO fmsStaffVO = getStaffVO(request); PrintWriter pw = null; String fileName = null; String path = null; String realPath = null; int fileSize = 0; FMSFile fmsFile = null; try { FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding("utf-8"); List items = null; items = upload.parseRequest(request); for (int i = 0; items != null && i < items.size(); i++) { FileItem item = (FileItem) items.get(i); if (item.getFieldName() != null && item.getFieldName().equals("uploadFolderPath")) { path = new String(item.getString().getBytes("iso8859-1"), "utf-8"); } System.out.println("—————————————————-"); System.out .println("item.getFieldName()=" + item.getFieldName()); System.out.println("item.getName()=" + item.getName()); System.out.println("item.isFormField()=" + item.isFormField()); System.out.println("item.isInMemory()=" + item.isInMemory()); System.out.println("item.getContentType()=" + item.getContentType()); System.out.println("—————————————————-"); } pw = response.getWriter(); if (path == null || path.equals("")) { pw.println("<B>路径不正确</B>"); pw.flush(); pw.close(); return null; } for (int i = 0; items != null && i < items.size(); i++) { FileItem item = (FileItem) items.get(i); if (item.getFieldName() != null && item.getFieldName().equals("Filedata")) { fileName = item.getName(); realPath = FMSUtil.getProperty("root.path") + path; File folder = new File(realPath); System.out.println("folder.exists()=" + folder.exists()); System.out.println(folder); if (folder.exists() && folder.isDirectory()) { File file = new File(realPath + "\\" + fileName); FileOutputStream os = new FileOutputStream(file); BufferedOutputStream bos = new BufferedOutputStream(os); BufferedInputStream bis = new BufferedInputStream(item .getInputStream()); // copy file fileSize = org.apache.commons.io.IOUtils.copy(bis, bos); fmsFile = new FMSFile(); fmsFile.setName(fileName); fmsFile.setPath(path); fmsFile.setSize(fileSize + ""); fmsFile.setCreateBy(fmsStaffVO.getStaffId() + ""); fmsFile.setCreateDate(session.getDate()); fmsFile.setModifyBy(fmsFile.getCreateBy()); fmsFile.setModifyDate(fmsFile.getCreateDate()); Set<IDocumentAccess> das = new HashSet<IDocumentAccess>(); FMSFileAccess da = new FMSFileAccess(); da .setAccessUnitCategory(FMSFileAccess.ACCESS_UNIT_CATEGORY_STAFF); da.setAccessUnitId(fmsStaffVO.getStaffId() + ""); Set<String> auths = new HashSet<String>(); auths.add("5"); da.setPurviewSet(auths); da.setFile(fmsFile); das.add(da); da = new FMSFileAccess(); da .setAccessUnitCategory(FMSFileAccess.ACCESS_UNIT_CATEGORY_ROLE); da.setAccessUnitId("45");// public access auths = new HashSet<String>(); auths.add("1"); da.setPurviewSet(auths); da.setFile(fmsFile); das.add(da); session.saveDocsAccess(fmsFile, das); /* * List<FMSDocument> fMSDocuments = new ArrayList<FMSDocument>(); * fMSDocuments.add(fmsFile); * session.save(fMSDocuments); */ bis.close(); bos.close(); pw.println("<B>上传成功</B>"); pw.flush(); pw.close(); } else { pw.println("<B>路径不存在</B>"); pw.flush(); pw.close(); return null; } } } pw.println("<B>上传成功</B>"); pw.flush(); pw.close(); } catch (Exception e) { if (pw != null) { pw.println("<B>文件上传失败</B>"); pw.flush(); pw.close(); } // 删除文件 if (realPath != null && fileName != null) { File file = new File(realPath + "\\" + fileName); if (file.exists()) { file.delete(); } } // 删除数据库文件和权限 session.deleteFmsDocumentByDocument(fmsFile, fmsStaffVO .getStaffId() + ""); return null; } return null; } } FMSSession是哪个包包里的?我用lcds的Jar里没有发现他的踪迹哇~! |
|
返回顶楼 | |
发表时间:2009-11-17
谢谢兄弟,你真是热心人。
FMSSession 无需理会的,因为它是我们项目中与业务相关的EJB接口,与接受上传文件的逻辑无关。 对不起大家,我太懒(太忙),没有去把这些不相关的东西去掉,给大家造成不便,请原谅,我会抽时间封装一下的。谢谢大家 andy_ghg 写道 package cn.com.ajaxbear.action; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.PrintWriter; import java.util.HashSet; import java.util.List; import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class FileUploadCore { /** * 批量上传文件 * * @param mapping * @param form * @param request * @param response * @throws Exception */ @SuppressWarnings("uncheck") public ActionForward fileBatchUpload(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { response.setCharacterEncoding("utf-8"); request.setCharacterEncoding("utf-8"); FMSSession session = BaseSession.getInstance().getBean( FMSSession.class, FMSUtil.getProperty("fms.provider.url")); FMSStaffVO fmsStaffVO = getStaffVO(request); PrintWriter pw = null; String fileName = null; String path = null; String realPath = null; int fileSize = 0; FMSFile fmsFile = null; try { FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding("utf-8"); List items = null; items = upload.parseRequest(request); for (int i = 0; items != null && i < items.size(); i++) { FileItem item = (FileItem) items.get(i); if (item.getFieldName() != null && item.getFieldName().equals("uploadFolderPath")) { path = new String(item.getString().getBytes("iso8859-1"), "utf-8"); } System.out.println("—————————————————-"); System.out .println("item.getFieldName()=" + item.getFieldName()); System.out.println("item.getName()=" + item.getName()); System.out.println("item.isFormField()=" + item.isFormField()); System.out.println("item.isInMemory()=" + item.isInMemory()); System.out.println("item.getContentType()=" + item.getContentType()); System.out.println("—————————————————-"); } pw = response.getWriter(); if (path == null || path.equals("")) { pw.println("<B>路径不正确</B>"); pw.flush(); pw.close(); return null; } for (int i = 0; items != null && i < items.size(); i++) { FileItem item = (FileItem) items.get(i); if (item.getFieldName() != null && item.getFieldName().equals("Filedata")) { fileName = item.getName(); realPath = FMSUtil.getProperty("root.path") + path; File folder = new File(realPath); System.out.println("folder.exists()=" + folder.exists()); System.out.println(folder); if (folder.exists() && folder.isDirectory()) { File file = new File(realPath + "\\" + fileName); FileOutputStream os = new FileOutputStream(file); BufferedOutputStream bos = new BufferedOutputStream(os); BufferedInputStream bis = new BufferedInputStream(item .getInputStream()); // copy file fileSize = org.apache.commons.io.IOUtils.copy(bis, bos); fmsFile = new FMSFile(); fmsFile.setName(fileName); fmsFile.setPath(path); fmsFile.setSize(fileSize + ""); fmsFile.setCreateBy(fmsStaffVO.getStaffId() + ""); fmsFile.setCreateDate(session.getDate()); fmsFile.setModifyBy(fmsFile.getCreateBy()); fmsFile.setModifyDate(fmsFile.getCreateDate()); Set<IDocumentAccess> das = new HashSet<IDocumentAccess>(); FMSFileAccess da = new FMSFileAccess(); da .setAccessUnitCategory(FMSFileAccess.ACCESS_UNIT_CATEGORY_STAFF); da.setAccessUnitId(fmsStaffVO.getStaffId() + ""); Set<String> auths = new HashSet<String>(); auths.add("5"); da.setPurviewSet(auths); da.setFile(fmsFile); das.add(da); da = new FMSFileAccess(); da .setAccessUnitCategory(FMSFileAccess.ACCESS_UNIT_CATEGORY_ROLE); da.setAccessUnitId("45");// public access auths = new HashSet<String>(); auths.add("1"); da.setPurviewSet(auths); da.setFile(fmsFile); das.add(da); session.saveDocsAccess(fmsFile, das); /* * List<FMSDocument> fMSDocuments = new ArrayList<FMSDocument>(); * fMSDocuments.add(fmsFile); * session.save(fMSDocuments); */ bis.close(); bos.close(); pw.println("<B>上传成功</B>"); pw.flush(); pw.close(); } else { pw.println("<B>路径不存在</B>"); pw.flush(); pw.close(); return null; } } } pw.println("<B>上传成功</B>"); pw.flush(); pw.close(); } catch (Exception e) { if (pw != null) { pw.println("<B>文件上传失败</B>"); pw.flush(); pw.close(); } // 删除文件 if (realPath != null && fileName != null) { File file = new File(realPath + "\\" + fileName); if (file.exists()) { file.delete(); } } // 删除数据库文件和权限 session.deleteFmsDocumentByDocument(fmsFile, fmsStaffVO .getStaffId() + ""); return null; } return null; } } FMSSession是哪个包包里的?我用lcds的Jar里没有发现他的踪迹哇~! |
|
返回顶楼 | |
发表时间:2009-11-17
andy_ghg 写道 FMSSession是哪个包包里的?我用lcds的Jar里没有发现他的踪迹哇~! 看你的意思,你的上传客户端是用的flex啊,其实这个东东比flash好。你先的问题是不是不明白如何用java程序接收上传过来的数据呢? 其实如果初次接触,用的是struts1.2,还真的容易接受不到正确的数据,另外还有中文名乱码的问题等等。具体原因上文已经阐述过,希望能帮到你 |
|
返回顶楼 | |