DWR 새로 고침 없이 업로드

여기에는commons-fileupload-1.2.2와commons-io-2.3이 필요합니다.
This is the web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<servlet>
		<servlet-name>dwr-invoker</servlet-name>
		<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
		<!--  debug true , DWR , http://ip:port/webApp/dwr/ -->
		<!--  , ,  -->
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>
	</servlet>

	<servlet-mapping>
		<servlet-name>dwr-invoker</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>
</web-app>

This is DWR Config File----dwr.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"
"http://getahead.org/dwr/dwr30.dtd">
<dwr>
	<allow>
		<create creator="new" javascript="JSUserManager">
			<param name="class" value="com.jadyer.dwr.UserManager" />
		</create>
	</allow>
</dwr>

다음은 업로드 작업을 제출하는 프론트 데스크톱 페이지 upload입니다.jsp
<%@ page language="java" pageEncoding="UTF-8"%>

<script type="text/javascript" src="<%=request.getContextPath()%>/dwr/interface/JSUserManager.js"></script>
<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">
	function upload() {
		var file = dwr.util.getValue("myfile");
		alert(file.value);// , ....IE9 ,firefox12 
		alert(file);
		JSUserManager.upload(file, file.value, function(data){
			alert(data);
		});
	}
</script>

<input type="file" id="myfile"/>
<input type="button" value=" " onclick="upload()"/>

마지막으로 DWR에서 게시해야 하는 UserManager입니다.java
package com.jadyer.dwr;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.directwebremoting.WebContextFactory;

public class UserManager {
	/**
	 *  
	 * @param is       DWR dwr.util.getValue("myfile") InputStream
	 * @param filename  ,IE9 ,firefox12 
	 * @return  
	 */
	public String upload(InputStream is, String filename) throws IOException{
		String realname = FilenameUtils.getName(filename);                            // 
		HttpServletRequest request = WebContextFactory.get().getHttpServletRequest(); // Servlet API
		String realpath = request.getSession().getServletContext().getRealPath("/WEB-INF/upload");
		FileUtils.copyInputStreamToFile(is, new File(realpath, realname));
		return realname;
	}
}

보충://WEB-INF//upload//디렉터리를 만들어서 업로드된 파일을 수신하는 데 사용하십시오

좋은 웹페이지 즐겨찾기