J2EE中怎样实现文件传输?? 不是有一个现成的JSPSmartFile组件? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 文件上传,用JSPSmartFile组件如果局域网传输,用JAVA编程就可以了 用APACHE的common-file包,这个简单好用 自己看SMARTUPLOAD代码,其实是从REQUEST中截取文件字节,然后保存。没有什么希奇的东西,而且不用再费劲去写两遍了,除非你有更好的办法。下载SMARTUPLOADhttp://www.softboss.com/Code.asp看完有什么心得可以在大佬多交流------------------- 软件大佬是基于软件业的研发、学习、交易、管理的网络平台,是您事业开始的地方,请访问www.softboss.com! 内网可以用SOCKET,,WEB的可以用JSPSmartFile组件 j2ee实现这种东西不现实。可以通过jdk生成文件到服务器端,然后给对方服务器发一个JMS消息通知它通过FTP来取就行了。 文件上传,用JSPSmartFile组件如果局域网传输,用JAVA编程就可以了说的太对了。就按(小马)说的做吧。 如果采用socket,tcp,udp来实现,怎么个写法呢是不是先把文件载入到缓冲区中,再通过socket发送过去呢? 1、在MVC模型的servlet中上传文件,使用commons-fileupload.jar包,核心代码详细注释如下:import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;import org.apache.commons.fileupload.*;/** * Created by IntelliJ IDEA. * User: lixin * Date: 2004-3-9 * Time: 14:06:56 * To change this template use Options | File Templates. */public class Upload extends HttpServlet { private String uploadPath = "C:\\upload\\"; // 用于存放上传文件的目录 private String tempPath = "C:\\upload\\temp\\"; // 用于存放临时文件的目录 public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { tempPath.length(); try { request.setCharacterEncoding("GB2312"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } try { DiskFileUpload fu = new DiskFileUpload(); // 设置最大文件尺寸,这里是40MB fu.setSizeMax(999999999); // 设置缓冲区大小,这里是4Mb fu.setSizeThreshold(4194304); // 设置临时目录: fu.setRepositoryPath(tempPath); // 得到所有的文件: List fileItems = fu.parseRequest(request); Iterator i = fileItems.iterator(); // 依次处理每一个文件: while (i.hasNext()) { FileItem fi = (FileItem) i.next(); fi.getSize(); // 获得文件名,这个文件名包括路径: String fileName = fi.getName(); if (fileName != null) { String f = "\\"; int lastword = fileName.lastIndexOf(f); String uploadfilename = fileName.substring(lastword); fi.write(new File(uploadPath + uploadfilename)); } } forward("/jsp/succes.jsp", request, response); } catch (Exception e) { forward("/jsp/error.jsp", request, response); } } private void forward(String url, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { RequestDispatcher rd = request.getRequestDispatcher(url); rd.forward(request, response); }}2、在jsp的页面中上传文件,使用SmartUpload.jar包,核心代码如下:<%@ page contentType="text/html; charset=GB2312" language="java" import="com.jspsmart.upload.*,thtf.ebuilder.formspk.*"%><jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" /><html><head><title>上传表单界面文件</title><link href="/Application/css/style.css" rel="stylesheet" type=text/css></head><body><%String type = request.getParameter("type");boolean have = false;if(type!=null && type.equals("1")){ String file_name = ""; mySmartUpload.initialize(pageContext); mySmartUpload.upload(); String path = request.getRealPath("/infobs/upload/"); java.io.File d = new java.io.File(path); java.io.File list[] = d.listFiles(); com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0); for(int i=0; i < list.length; i++) { if (myFile.getFileName().equals(list[i].getName())) { out.println("<script>alert('存在同名文件,上传失败!');</script>"); have = true; out.println("<script>window.history.go(-1)</script>"); break; } } if(!have) { myFile.saveAs("/infobs/upload/" + myFile.getFileName()); file_name = myFile.getFileName(); file_name = file_name.trim(); Examination exa = new Examination(); if(!exa.CheckHml("\\infobs\\upload\\"+myFile.getFileName(),out,request)) { java.io.File delF = new java.io.File(path,file_name); //删掉 delF.delete(); out.println("<script>alert('请修改表单后再上传!');</script>"); out.println("<script>window.history.go(-1)</script>"); } else { out.println("<script>alert('上传成功!');</script>"); // out.println("<script>window.history.go(-1)</script>"); out.println("<script"+">window.opener.form1.info_upload1.value='"+file_name+"';<"+"/script>"); out.println("<script"+">window.opener.form1.info_upload.value='"+file_name+"';<"+"/script>"); out.println("<script>window.history.go(-1)</script>"); } }}else{%>以上代码已经通过测试,供参考 在servlet中页面转向后,css、js无效果 如何去自动抓取其他网站上的新闻信息 hibernate反向生成映射文件?? dom4j 解析xml的问题 Spring2.0 + hibernate + struts问题 Hibernate关闭后的session可以再次打开并调用吗? hibernate对象查询工具的问题。在线等答案?? stuts多模块和插件冲突? 着急ing!!请大侠指教!!!Jsp显示blob图片的问题。多谢多谢 玩过jboss的请过来,这个错误怎么回事?在线 高手详解一下这个连接池! 怎样使weblogic7支持struts1.1
http://www.softboss.com/Code.asp看完有什么心得可以在大佬多交流-------------------
软件大佬是基于软件业的研发、学习、交易、管理的网络平台,是您事业开始的地方,请访问www.softboss.com!
可以通过jdk生成文件到服务器端,然后给对方服务器发一个JMS消息通知它通过FTP来取就行了。
是不是先把文件载入到缓冲区中,再通过socket发送过去呢?
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;import org.apache.commons.fileupload.*;
/**
* Created by IntelliJ IDEA.
* User: lixin
* Date: 2004-3-9
* Time: 14:06:56
* To change this template use Options | File Templates.
*/
public class Upload extends HttpServlet { private String uploadPath = "C:\\upload\\"; // 用于存放上传文件的目录
private String tempPath = "C:\\upload\\temp\\"; // 用于存放临时文件的目录 public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
tempPath.length();
try {
request.setCharacterEncoding("GB2312");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
try {
DiskFileUpload fu = new DiskFileUpload();
// 设置最大文件尺寸,这里是40MB
fu.setSizeMax(999999999);
// 设置缓冲区大小,这里是4Mb
fu.setSizeThreshold(4194304);
// 设置临时目录:
fu.setRepositoryPath(tempPath); // 得到所有的文件:
List fileItems = fu.parseRequest(request);
Iterator i = fileItems.iterator();
// 依次处理每一个文件:
while (i.hasNext()) {
FileItem fi = (FileItem) i.next();
fi.getSize(); // 获得文件名,这个文件名包括路径:
String fileName = fi.getName();
if (fileName != null) {
String f = "\\";
int lastword = fileName.lastIndexOf(f);
String uploadfilename = fileName.substring(lastword);
fi.write(new File(uploadPath + uploadfilename)); }
}
forward("/jsp/succes.jsp", request, response);
} catch (Exception e) {
forward("/jsp/error.jsp", request, response); }
} private void forward(String url, HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException { RequestDispatcher rd = request.getRequestDispatcher(url);
rd.forward(request, response);
}}2、在jsp的页面中上传文件,使用SmartUpload.jar包,核心代码如下:
<%@ page contentType="text/html; charset=GB2312" language="java" import="com.jspsmart.upload.*,thtf.ebuilder.formspk.*"%>
<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
<html>
<head>
<title>上传表单界面文件</title>
<link href="/Application/css/style.css" rel="stylesheet" type=text/css>
</head>
<body>
<%
String type = request.getParameter("type");
boolean have = false;
if(type!=null && type.equals("1"))
{
String file_name = "";
mySmartUpload.initialize(pageContext);
mySmartUpload.upload(); String path = request.getRealPath("/infobs/upload/");
java.io.File d = new java.io.File(path);
java.io.File list[] = d.listFiles();
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0); for(int i=0; i < list.length; i++)
{
if (myFile.getFileName().equals(list[i].getName()))
{
out.println("<script>alert('存在同名文件,上传失败!');</script>");
have = true;
out.println("<script>window.history.go(-1)</script>");
break;
}
} if(!have)
{
myFile.saveAs("/infobs/upload/" + myFile.getFileName());
file_name = myFile.getFileName();
file_name = file_name.trim();
Examination exa = new Examination();
if(!exa.CheckHml("\\infobs\\upload\\"+myFile.getFileName(),out,request))
{
java.io.File delF = new java.io.File(path,file_name);
//删掉
delF.delete();
out.println("<script>alert('请修改表单后再上传!');</script>");
out.println("<script>window.history.go(-1)</script>");
}
else
{
out.println("<script>alert('上传成功!');</script>");
// out.println("<script>window.history.go(-1)</script>");
out.println("<script"+">window.opener.form1.info_upload1.value='"+file_name+"';<"+"/script>");
out.println("<script"+">window.opener.form1.info_upload.value='"+file_name+"';<"+"/script>");
out.println("<script>window.history.go(-1)</script>");
}
}
}
else
{
%>以上代码已经通过测试,供参考