Cilent:为了保证上传文件名的有效性,将fileName的长度指定到一定长度(原fileName的长度一定要小于扩增后的fileName长度)。将该fileName转成字节数组上传给服务器。- while(true){
- if (fileName.getBytes().length < 255)
- fileName += " ";
- else
- break;
- }
- out.write(fileName.getBytes());
复制代码 Server:定义一个与上传时fileName长度相同的数组。读取上传的文件名,且只读取一次并将读入的信息存入数组中。然后在读取剩余的信息存入文件中。- InputStream in = s.getInputStream();
- byte[] bufFileName = new byte[255];
- int len1 = in.read(bufFileName);
-
- fileName = new String(bufFileName, 0, len1);
- File dir = new File("f:\\" + ip);
- File file = new File(dir, fileName);
- if (!dir.exists()) {
- dir.mkdirs();
- }
复制代码 |