java上传java上传文件到远程服务器

2024-06-28 02:45:42 浏览

1.首先在本地存放一个文件;

java上传java上传文件到远程服务器

2.接着打开IDEA开始网络编程,分别创建两个类,客户端类和服务器类;

3.接着在客户端类中创建一个本地文件输入流,读取本地文件;同时创建Socket对象,并使用网络字节输出流向服务器发起传输文件的请求;

4.然后在服务器类中创建ServerSocket对象,并使用对象的getInputStream()方法读取从客户端传来的文件;同时创建本地文件输出流,用于写出并将文件存放到服务器的指定位置;

5.服务器端接收并存储文件成功后,服务器类需要向客户端反馈相关信息,因此继续使用Socket类的getOutputStream()方法反馈文件“上传成功”的信息;客户端类使用getInputStream()方法读取服务器反馈的信息,完成一次通信;

6.最后,先启动服务器类,在启动客户端类,查看文件是否上传成功。

如果通过servelet来读取上传文件路径,则代码如下,我已经在项目中用过了:

DiskFileItemFactory difif = new DiskFileItemFactory(); difif.setSizeThreshold(32*1024);difif.setRepository(new File(tmpDir)); // 用以上工厂实例化上传组件ServletFileUpload sfu = new ServletFileUpload(difif); sfu.setSizeMax(MAX_SIZE); List fileList = sfu.parseRequest(request); if ( fileList == null || fileList.size() == 0) { throw new Exception(" 导入文件不存在,请检 查");} else { File upLoadFile = null; Iterator fileIterator = fileList.iterator(); //得到所有上传的文 件 while (fileIterator.hasNext()) { FileItem fileItem = (FileItem)fileIterator.next(); // 取得上传文件 名 if (fileItem.getContentType() == null) { } else { // 此为路 径 String path = fileItem.getName(); String t_ext = path.substring(path.lastIndexOf(".") + 1); // 根据系统时间生成上传后保存的文件 名 String prefix = String.valueOf(System.currentTimeMillis()); // 保存最终的文件完整路径,保存在工程根目录下的Upload目录 下 String u_name = tmpDir + File.separator + prefix + "." + t_ext; // 开始保存文 件 upLoadFile = new File(u_name); fileItem.write(upLoadFile); } } }

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。