dwr 上传文件 出错 求高手解决下谢谢(急)
错误提示
2012-8-2 15:07:53 org.directwebremoting.util.CommonsLoggingOutput warn
警告: Marshalling exception: Missing method or missing parameter converters
2012-8-2 15:07:53 org.directwebremoting.util.CommonsLoggingOutput warn
警告: --Erroring: batchId[0] message[java.lang.IllegalArgumentException: Missing method or missing parameter converters]
后台代码
public class Dwr { public String upload(InputStream is,String filename) throws IOException { //WebContext可以获取HttpServlet的对象 WebContext wc = WebContextFactory.get(); HttpServletRequest req = wc.getHttpServletRequest(); String realpath = req.getSession().getServletContext().getRealPath("upload"); String fn = FilenameUtils.getName(filename); String filepath = realpath+"/"+fn; // FileUtils.copyInputStreamToFile(is, new File(filepath)); return filepath; }}<script type="text/javascript" src='<%=request.getContextPath()%>/dwr/engine.js '></script><script type="text/javascript" src='<%=request.getContextPath()%>/dwr/util.js '></script><script type="text/javascript" src='<%=request.getContextPath()%>/dwr/interface/myDwr.js'></script><script type="text/javascript">function upload() { var file = dwr.util.getValue("myfile"); alert(dwr.util.getValue("myfile").value); alert(file); myDwr.upload(file,file.value,function(data){ alert(data); });}</script></head><body> <input type="file" id="myfile"/> <input type="button" value="上传文件" onclick="upload()"/></body><create creator="new" javascript="myDwr"> <param name="class" value="dwrTest.Dwr" /> <convert converter="bean" match="java.lang.StackTraceElement" />
<html>
<body>
<jsp:useBean id="mySmartUpload" scope="page"class="com.jspsmart.upload.SmartUpload" />
<h1>
<%
try {
mySmartUpload.initialize(pageContext);
mySmartUpload.service(request, response);
mySmartUpload.upload();
//得到第一个上传的文件名
String fn = mySmartUpload.getFiles().getFile(0).getFileName();
//String word_file = new File(getServletContext().getRealPath("/").toString()+"UploadWord/"+fn); 自动获取url未完成
//session.setAttribute("WordFile", word_file);//添加到session中
//session.setAttribute("WordFile", "E://Program Files/SoftwareDocument/Apache Software Foundation/Tomcat 6.0/webapps/AnalyticWord/UploadWord/"+fn);
//将上传的文件保存到指定的文件夹
mySmartUpload.save("UploadWord/");
out.print("已经成功上传了文件,请查看<a href=UploadWord/" + fn + ">这里</a>,看文件是否上传成功<br/>");
out.print("<a href=\"word.jsp\">网页模式查看Word文档</a>");
} catch (Exception e) {
session.setAttribute("WordFile", "");
out.print("上传Word文档失败,<a href=uploadWordfile.jsp >请重试<a>");
}
%>
</h1>
</body>
</html>
[解决办法]
给你一个demo
http://download.csdn.net/detail/s478853630/4360825
/** * 上传文件 * @param input 文件流 * @param filePath 文件保存的路径(物理路径) * @return Boolean 文件上传是否成功 */ public Boolean uploadFile(InputStream input, String filePath) { try { File file = new File(filePath);//新文件 OutputStream output = new FileOutputStream(file); try { byte[] buffer = new byte[1024]; int i = 0; while ((i = input.read(buffer)) != -1) { output.write(buffer, 0, i);//保存文件 } } catch (Exception e) { e.printStackTrace(); } finally { input.close(); output.close(); } return true; } catch (Exception e) { e.printStackTrace(); } return false; } /** * 一次上传多个文件 * @param inputs 文件流的数组 * @param fileNames 文件流对应的文件名 * @param folder 文件上传保存的文件夹(物理路径) * @return Integer 上传文件成功的个数 */ public Integer uploadFile(InputStream []inputs, String []fileNames, String folder) { Integer result = 0; if (null != inputs && inputs.length > 0 && null != fileNames && inputs.length == fileNames.length) { FileUtil.createFolder(folder); for (int i = 0; i < inputs.length; i++) { if (uploadFile(inputs[i], folder + fileNames[i])) { result++; } } } return result; }