String urlPath = "http://hostname:portno/filepath.pdf";
url = new URL(urlPath);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestProperty("Content-Type", "application/octet-stream");
OutputStream outStream = conn.getOutputStream();
out = new BufferedOutputStream(outStream);
if (byteContent != null && byteContent.length > 0) {
out.write(byteContent);
byteLength = byteContent.length;
}
此代码不会给出任何异常,但不会在我的tomcat位置创建文件
答案 0 :(得分:0)
这不是将文件写入tomcat的方法。您正在发出HTTP请求,将字节发送到服务器。
您应该创建一个FileOutputStream(..)
并在那里写入字节。这是因为您的代码在Tomcat中运行。
如果您的代码是单独的应用程序,则需要创建一个可以处理传入请求并保存文件的servlet。没有直接的方法可以简单地将文件推送到服务器(并且更好 - 否则每个人都会上传文件)
答案 1 :(得分:0)
apache commons-fileupload
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> items = upload.parseRequest(request);
Iterator<FileItem> iterator = items.iterator();
while(iterator.hasNext()) {
FileItem item = iterator.next();
if(!item.isFormField()) {
File uploadedFile = new File("fullPathToFile");
System.out.println(uploadedFile.getAbsolutePath());
item.write(uploadedFile);
}
}